Wolfram Language & System 11.0 (2016)|Legacy Documentation

This is documentation for an earlier version of the Wolfram Language.View current documentation (Version 11.2)

How WSTP Is Used

The Wolfram Symbolic Transfer Protocol (WSTP) provides a mechanism through which programs can interact with the Wolfram Language.

Calling functions in an external program from within the Wolfram Language.
Calling the Wolfram System from within an external program.
Setting up alternative front ends to the Wolfram Language.
Exchanging data between the Wolfram System and external programs.
Exchanging data between concurrent Wolfram System processes.

Some typical uses of WSTP.

WSTP provides a general interface for external programs to communicate with the Wolfram Language. Many standard software systems now have WSTP compatibility either built in or available in addon modules.

In addition, the WSTP Developer Kit bundled with most versions of the Wolfram System provides the tools you need to create your own WSTPcompatible programs.

Once you have a WSTPcompatible program, you can transparently establish a link between it and the Wolfram Language.

The link can either be on a single computer or it can be over a network, potentially with a different type of computer at each end.

Implementing inner loops in a lowlevel language.
Handling large volumes of data external to the Wolfram Language.
Sending the Wolfram Language graphics or other data for special processing.
Connecting to a system with an existing user interface.

A few uses of WSTPcompatible programs.

WSTPcompatible programs range from very simple to very complex. A minimal WSTPcompatible program is just a few lines long. But it is also possible to build very large and sophisticated WSTPcompatible programs. Indeed, the Wolfram System notebook front end is one example of a sophisticated WSTPcompatible program.

WSTP is a mechanism for exchanging Wolfram Language expressions between programs.

The basic idea of WSTP.

Much of the power of WSTP comes from its use of Wolfram Language expressions. The basic idea is that WSTP provides a way to exchange Wolfram Language expressions between programs, and such expressions can represent absolutely any kind of data.

An array of numbers.
A collection of geometrical objects.
A sequence of commands.
A stream of text.
Records in a database.
The cells of a Wolfram System notebook.

A few examples of data represented by Wolfram Language expressions in WSTP.

The WSTP library consists of a collection of routines that allow external programs to send and receive Wolfram Language expressions using the fundamental C data types.

The WSTP Developer Kit provides utilities for incorporating these routines into external programs. Utilities are included for a variety of languages, although here mainly the case of C is discussed.

An important feature of the WSTP library is that it is completely platform independent: it can transparently use any interprogram communication mechanism that exists on your computer system.