Calling External Programs

The Wolfram Language immediately allows you to call both standalone programs and individual functions or methods within running programs. The Wolfram Language's architecture allows external functionality to be represented in a symbolic form that can immediately be manipulated within the Wolfram Languageand that often makes access to external functionality from within the Wolfram Language more convenient even than from its own native environment.

Basic External Program Operations

Run run an external command-line program (!prog to run as a shell escape)

RunThrough feed standard input to an external program and capture output

SystemOpen open a file, URL or other target on your computer system

Direct Control of External Processes »

RunProcess run an external process within the operating system

StartProcess  ▪  ProcessConnection  ▪  KillProcess  ▪  ...

RemoteRun, RemoteRunProcess run programs on a remote system

RemoteConnect establish a persistent remote connection

$SSHAuthentication default SSH authentication for remote connections

External Services »

SendMail  ▪  SendMessage

ServiceExecute execute a command on an external service

ServiceConnect  ▪  ServiceObject

Code Compilation »

FunctionCompile create a compiled version of a pure function

FunctionCompileExport create an object file by compiling a pure function

LibraryFunctionDeclaration declare a function from a dynamic library for the compiler

Compile legacy lightweight numerical compiler for basic evaluation

Calling Interpreted 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 variable from an external language

StartExternalSession start a persistent external language session

RegisterExternalEvaluator  ▪  ...

Foreign Function Interface »

ForeignFunctionLoad load a function from a C-compatible dynamic library

ForeignFunction a function that calls into a C-compatible dynamic library

RawPointer  ▪  OpaqueRawPointer  ▪  RawMemoryExport  ▪  RawMemoryImport  ▪  RawMemoryAllocate  ▪  RawMemoryFree  ▪  ...

Wolfram Symbolic Transfer Protocol (WSTP) »

Install install a WSTP-installable external program

LinkPatterns find functions available in a running WSTP program

wsprep externally prepare a WSTPinstallable C or C++ program

LinkRead  ▪  LinkWrite  ▪  LinkLaunch  ▪  ...

Wolfram LibraryLink »

LibraryFunctionLoad load a function from a dynamic library into the Wolfram Language

LibraryFunction a function that calls into a dynamic library

LibraryFunctionInformation  ▪  LibraryFunctionUnload  ▪  LibraryLoad  ▪  LibraryUnload  ▪  FindLibrary  ▪  $LibraryPath  ▪  ...

Java Interface (J/Link) »

JavaNew create a new Java object in any specified class

LoadJavaClass  ▪  MakeJavaObject  ▪  JavaBlock  ▪  JavaShow  ▪  ...

.NET Interface (.NET/Link) »

NETNew create a new .NET object of any specified type

LoadNETType  ▪  NETTypeInfo  ▪  MakeNETObject  ▪  NETBlock  ▪  ...

Wolfram Client Library for Python »

start a persistent session with a local Wolfram Engine

connect to a cloud, public or private

WSDL Web Services »

InstallService install web services from a WSDL description

GPU Computing »

CUDAFunctionLoad  ▪  OpenCLFunctionLoad  ▪  ...