External Language Interfaces

The Wolfram Language has built-in support for common external languages, as well as flexible tools for creating interfaces to any external language or program.

Evaluating External Languages

ExternalEvaluate one-shot evaluation of external code

ExternalFunction call a function in an external language and return the result

ExternalOperation represents an external operation

ExternalObject represents an external object bound to an external session

External Sessions

StartExternalSession start a persistent session of the external system

ExternalSessionObject symbolic representation of an active external session

ExternalSessions give a list of active external sessions

DeleteObject  ▪  ExternalValue

Managing External Evaluator Systems

FindExternalEvaluators find currently available external evaluator systems

RegisterExternalEvaluator  ▪  UnregisterExternalEvaluator

SystemInstall install software for external evaluators

"Python"  ▪  "NodeJS"  ▪  "Julia"  ▪  "Ruby"  ▪  "R"  ▪  "Java"  ▪  "Octave"  ▪  "Jupyter"  ▪  "SQL"  ▪  "SQL-JDBC"  ▪  "Shell"

Running Arbitrary Processes

StartProcess start an external process, returning a process object

RunProcess run an external process, returning full information

ProcessObject  ▪  ProcessInformation  ▪  KillProcess

Generating Code to Call Wolfram Language Functions

EmbedCode generate native code to call the Wolfram Cloud and Wolfram Engine

$EmbedCodeEnvironments list of languages supported by EmbedCode

C and C++ »

FunctionCompile create a compiled version of a pure function

FunctionCompileExportLibrary create a shared library by compiling a pure function

LibraryFunctionDeclaration declare functions in external libraries for compiled code

LibraryFunction a function calling into a dynamic library

CFunction symbolic representation of a C function

Install load an installable WSTP-enabled program

LinkRead  ▪  LinkWrite

Java »

LoadJavaClass  ▪  JavaNew  ▪  JavaObject  ▪  ...

.NET »

LoadNETType  ▪  LoadNETAssembly  ▪  NETNew  ▪  NETBlock  ▪  ...

Python »

start a persistent session with a local Wolfram Engine

connect to a cloud, public or private

R »

ToRForm  ▪  FromRForm  ▪  RSet  ▪  REvaluate  ▪  RFunction  ▪  ...

Related Import & Export Formats

"JSON" lists and lists of rules mapped to JSON (.json)

"XML" general symbolic representation of arbitrary XML

"WXF" binary-serialized Wolfram Language expressions (.wxf)

"PythonExpression"  ▪  "JavaScriptExpression"  ▪  XMLElement  ▪  XMLObject  ▪  "ExpressionJSON"  ▪  "BSON"

Web Deployments & APIs

CloudDeploy deploy code or content to be accessed externally in the cloud

APIFunction symbolic representation of an API to be deployed

URLExecute execute an API or contents of a cloud object

Network Programming »

SocketConnect start a connection to a socket

SocketListen set up handlers to be run whenever data arrives on a socket

SocketOpen  ▪  SocketObject  ▪  SocketListener

General Templating »

TemplateApply  ▪  StringTemplate  ▪  FileTemplate  ▪  XMLTemplate