WOLFRAM

技术 ›

WSTP (Wolfram 符号传输协议)

在程序之间无缝传递代码、数据等内容

WSTP 长期以来一直是 Wolfram 系统的核心基础组件,是用于在不同程序间传输 Wolfram 语言符号表达式的原生协议。

无论是在单机上运行,还是通过网络连接,WSTP 都允许用 Wolfram 语言及其他语言编写的程序高效地交换具有任意结构的代码、数据或其他符号表达式。


编程语言支持

功能丰富的开发库支持从多种编程语言访问 WSTP。

C/C++

C/Link 提供便捷的原生 C 语言支持,可用于通过 WSTP 进行通信,以及发起计算请求和获取计算结果。

wstp.h: 头文件
libwstp 等:32 位和 64 位库
wsprep: 模板驱动的胶水代码(Glue Code)生成器
wscc: WSTP 编译器驱动程序

Java

J/Link 为 Java 程序提供高级 WSTP 通信支持。

通过 J/Link,Java 类和方法可通过 WSTP 在 Wolfram 语言程序中即时可见。

.NET

.NET/Link 为 .NET 程序(用 C#、VB.NET 等语言编写)提供高级 WSTP 通信支持。

通过 .NET/Link,.NET 类型和方法可通过 WSTP 在 Wolfram 语言程序中即时可见。

WOLFRAM 语言

Wolfram 语言具有对 WSTP 的内置支持,以进行表达式交换及请求计算。

RUST

wstp crate 提供便捷且高效的 Rust 支持,用于通过 WSTP 进行通信。

wstp:高效的 WSTP 绑定
wolfram-library-link:从 Wolfram 语言高效调用 Rust 库
wolfram-expr:在 Rust 中表示 Wolfram 语言表达式

其他语言

针对更多编程语言的完整 WSTP 支持功能仍在开发中。

许多语言(包括 PHP、Python、JavaScript、Visual Basic、Java、C#、C++ 和 Rust)均支持通过 HTTP 与 Wolfram 语言建立单向连接。

WSTP 服务与客户端

WSTP 是 Wolfram 技术生态系统中各软件组件实现丰富数据交换的关键。

WOLFRAM 引擎

WSTP 是 Wolfram 引擎的原生通信协议。

WSTPSERVER

WSTPServer 用于提供可通过 WSTP 通信的 Wolfram 引擎服务。

WOLFRAM 桌面笔记本界面

Wolfram 桌面笔记本界面通过 WSTP 与本地或远程计算机上的 Wolfram 引擎内核进行通信。

WOLFRAM 语言并行计算框架

在 Wolfram 语言内部,并行计算通过 Wolfram 引擎内核之间的 WSTP 连接来实现。

WOLFRAM CLOUD WSTP 端点

Wolfram Cloud 可以公开一个 WSTP 端点,允许通过互联网进行 WSTP 通信。URL 结构: wstp://www.wolframcloud.com/...

可安装 WSTP 的程序

利用 WSTP 语言库和实用工具,可以设置使用多种语言编写的程序,使其通过 WSTP 进行通信。

WOLFRAM LIBRARYLINK

Wolfram LibraryLink 允许您创建动态链接库 (DLL),使其直接加载到正在运行的 Wolfram 引擎,并通过 WSTP 与该引擎进行通信。

符号表达式交换

WSTP 可用于在任意两个程序之间传输符号表达式,即使两者都是非 Wolfram 语言程序也同样适用。

技术信息

  1. WSTP 是一种双向通信协议(类似于 XMPP,但不同于 HTTP)。
  2. WSTP 当前支持 macOS、Windows、Linux、iOS 和 Android 平台。
  3. 在适用的平台上,WSTP 同时支持 32 位和 64 位系统。
  4. WSTP 既可以在本地运行,也可以跨网络运行。
  5. WSTP 可以使用多种传输协议和进程间通信机制,包括 TCP/IP、共享内存和 Unix 管道。

背景信息

WSTP 是 MathLink 中传输协议组件的新名称,而 MathLink 是自 1990 年以来 Mathematica 使用的程序间通信标准。

C/Link 是 MathLink C 语言 API 组件的新名称。