Pular para o conteúdo

Guia 45 de 53

Integrações com linguagens de programação

Dez linguagens, sete famílias de providers, runtimes e requisitos de distribuição.

Nesta página

Dez linguagens estão disponíveis em sete famílias de providers. Importe um provider, escreva uma assinatura Zolo e mantenha o corpo na linguagem nativa. São integrações no host Zolo, e não alvos de compilação para essas linguagens.

Linguagem Plugin Imports de providers Runtime / preparação
C# dotnet csharp .NET
Python python python CPython
JavaScript / TypeScript node javascript, typescript Node
Java / Kotlin jvm java, kotlin JVM
C / C++ native c, cpp Clang · C ABI
Rust rust rust rustc · Cargo
Go go go Go · cgo

Preparação e distribuição

O empacotamento sem fontes pode preservar artefatos estrangeiros preparados, mas não remove dependências de runtime ou plataforma. Hospedagem na VM, native e LLVM está coberta; bindings estrangeiros rejeitam alvos WebAssembly não suportados. A aceitação recente dos providers cobre Windows x64. Python está verificado especificamente com CPython 3.12; outras plataformas precisam de validação própria.

C#

Integre funções C# tipadas, objetos CLR, callbacks e chamadas assíncronas. Prepare com as ferramentas .NET e mantenha o runtime compatível na distribuição.

use plugin dotnet::{csharp}

extern csharp fn add(a: int, b: int) -> int {
    return a + b;
}

Pratique na By Example · Programa fonte

Python

Execute Python no processo com imports nativos e conversão tipada. Windows com CPython 3.12 está verificado; um interpretador compatível e as dependências nativas dos pacotes são necessários.

use plugin python::{python as py}

extern py fn add(a: int, b: int) -> int {
    # Braces in comments stay inside Python: } {
    return a + b
}

Pratique na By Example · Programa fonte

JavaScript / TypeScript

Use JavaScript e TypeScript pelo Node embutido, incluindo módulos nativos e Promises. Shim, runtime e ABI de addons precisam coincidir. int da Zolo usa bigint em assinaturas inline.

use plugin node::{javascript as js, typescript as ts}

extern js fn add(a: int, b: int) -> int {
    return a + b;
}

Pratique na By Example · Programa fonte

Java / Kotlin

Compartilhe uma JVM para Java e Kotlin, com imports nativos, objetos vivos e dependências Maven. Preparação de fontes e editor exige as ferramentas correspondentes; aplicações preparadas precisam de um JRE compatível. JVM 8, 11 e 23 estão verificadas em Windows x64.

use plugin jvm::{kotlin}

extern kotlin fn greet(name: str) -> str {
    return "Olá, $name!"
}

Pratique na By Example · Programa fonte

C / C++

Prepare bibliotecas C17 e C++17 com Clang. C++ expõe classes concretas suportadas; ownership nativo e ponteiros ou templates não suportados exigem adapters explícitos. O código preparado executa sem o compilador de fontes.

use plugin native::{cpp}

extern cpp fn greet(name: str) -> str {
    return "Hello " + name;
}

print(greet("Zolo"))

Pratique na By Example · Programa fonte

Rust

Compile funções Rust tipadas e records copiados em uma biblioteca específica do alvo. Dependências Cargo participam do fluxo com lock. Artefatos distribuídos dispensam rustc e fontes; objetos com receivers retidos e generics abertos exigem adapters.

use plugin rust::{rust}

extern rust fn exact(value: int) -> int {
    value
}

Pratique na By Example · Programa fonte

Go

Prepare exports Go com cgo e um compilador C compatível. Funções tipadas, structs públicos copiados e módulos usam a ponte comum. Artefatos preparados dispensam Go e o cache de módulos; receivers retidos e variádicos exigem adapters.

use plugin go::{go}

extern go fn exact(value: int) -> int {
    return value
}

Pratique na By Example · Programa fonte

Tipos entre linguagens

Tipos entre linguagens · Dependências e locks

DOCS / OPINIÃO

Esta página deixou alguma pergunta?

Conte onde a explicação perdeu você. A documentação também faz parte da experiência da linguagem.

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br