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¶
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.