WOLFRAM

Tecnologias ›

WSTP (Wolfram Symbolic Transfer Protocol)

Protocolo de transferência simbólica que permite a comunicação fluida de código, dados e muito mais entre programas

Há muito tempo um componente central e habilitador dos sistemas Wolfram, o WSTP é o protocolo nativo para a transferência de expressões simbólicas da Wolfram Language entre programas.

Funcionando em um único computador ou através de uma rede, o WSTP permite que programas escritos tanto em Wolfram Language quanto em outras linguagens troquem, de forma eficiente, código, dados ou outras expressões simbólicas, com estrutura arbitrária.


Suporte a Linguagens

Bibliotecas ricas em recursos permitem o acesso ao WSTP a partir de uma variedade de linguagens.

C/C++

C/Link fornece suporte nativo conveniente em C para comunicação via WSTP, bem como para solicitar e consumir resultados de computações.

wstp.h: arquivo de cabeçalho
libwstp, etc.: bibliotecas de 32 e 64 bits
wsprep : gerador de código de integração baseado em templates
wscc : driver do compilador WSTP

Java

J/Link oferece suporte de alto nível para comunicação via WSTP em programas Java.

Com J/Link, classes e métodos Java tornam-se imediatamente visíveis, via WSTP, em programas escritos em Wolfram Language.

.NET

.NET/Link fornece suporte de alto nível para comunicação via WSTP em programas .NET (em C#, VB.NET, etc.).

Com .NET/Link, tipos e métodos .NET tornam-se imediatamente visíveis, via WSTP, em programas escritos em Wolfram Language.

WOLFRAM LANGUAGE

Wolfram Language possui suporte integrado para troca de expressões e solicitação de computações por meio do WSTP.

Rust

O crate wstp fornece suporte ergonômico e eficiente em Rust para comunicação via WSTP.

wstp: bindings eficientes para WSTP
wolfram-library-link: chamada eficiente de bibliotecas Rust a partir da Wolfram Language
wolfram-expr: representação de expressões da Wolfram Language em Rust

OUTRAS LINGUAGENS

O suporte completo ao WSTP está em desenvolvimento para outras linguagens.

Conexões unidirecionais com a Wolfram Language são suportadas via HTTP em diversas linguagens, incluindo PHP, Python, JavaScript, Visual Basic, Java, C#, C++ e Rust.

Serviços e Clientes WSTP

WSTP é a chave para viabilizar uma troca rica entre componentes de software no ecossistema de tecnologias da Wolfram.

WOLFRAM ENGINE

WSTP é o protocolo nativo de comunicação do Wolfram Engine.

WSTPSERVER

WSTPServer disponibiliza instâncias do Wolfram Engine que se comunicam via WSTP.

INTERFACE DE NOTEBOOK DO WOLFRAM DESKTOP

A interface de Notebook do Wolfram Desktop comunica-se com os kernels do Wolfram Engine via WSTP, tanto em computadores locais quanto remotos.

FRAMEWORK DE PARALELISMO DA WOLFRAM LANGUAGE

Dentro da Wolfram Language, a computação paralela é suportada por meio de conexões WSTP entre kernels do Wolfram Engine.

ENDPOINT WSTP DA WOLFRAM CLOUD

A Wolfram Cloud pode expor um endpoint WSTP que permite comunicação via WSTP pela internet. Estrutura da URL: wstp://www.wolframcloud.com/...

PROGRAMAS INSTALÁVEIS COM WSTP

Utilizando bibliotecas e utilitários de linguagem do WSTP, programas em diversas linguagens podem ser configurados para se comunicar via WSTP.

WOLFRAM LIBRARYLINK

Wolfram LibraryLink permite criar DLLs que são carregadas diretamente em um Wolfram Engine em execução e que podem se comunicar com o engine via WSTP.

TROCA DE EXPRESSÕES SIMBÓLICAS

WSTP pode ser utilizado para transferir expressões simbólicas entre qualquer par de programas, mesmo que nenhum deles seja escrito em Wolfram Language.

Informações Técnicas

  1. O WSTP é um protocolo bidirecional (semelhante ao XMPP, mas diferente do HTTP).
  2. Atualmente, o WSTP é suportado em macOS, Windows, Linux, iOS e Android.
  3. Quando aplicável, o WSTP é suportado tanto em sistemas de 32 bits quanto de 64 bits.
  4. O WSTP pode ser executado localmente ou através de uma rede.
  5. O WSTP pode utilizar diversos protocolos de transporte e mecanismos de comunicação entre processos, incluindo TCP/IP, memória compartilhada e pipes Unix.

Histórico

O WSTP é o novo nome do componente de protocolo de transferência do MathLink — o padrão de comunicação entre programas utilizado pelo Mathematica desde 1990.

C/Link é o novo nome do componente de API em linguagem C do MathLink.