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 Language—and 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 »
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 WSTP‐installable 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