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 run a command in an external language, and return the result

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

ExternalValue get the value of a symbol from an external language

StartExternalSession start a persistent external language session

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

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

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