Saltar al contenido

Guía 45 de 53

Integraciones con lenguajes de programación

Diez lenguajes, siete familias de providers, runtimes y requisitos de distribución.

En esta página

Diez lenguajes están disponibles mediante siete familias de providers. Importa un provider, escribe una firma Zolo y conserva el cuerpo en el lenguaje nativo. Son integraciones en el host Zolo, no destinos de compilación para esos lenguajes.

Lenguaje Plugin Imports de providers Runtime / preparación
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

Preparación y distribución

El empaquetado sin fuentes puede conservar artefactos externos preparados, pero no elimina dependencias de runtime o plataforma. Se cubre alojamiento en VM, native y LLVM; los bindings externos rechazan destinos WebAssembly no admitidos. La aceptación reciente cubre Windows x64. Python se verifica específicamente con CPython 3.12; otras plataformas requieren validación propia.

C#

Integra funciones C# tipadas, objetos CLR, callbacks y llamadas asíncronas. Prepara con las herramientas .NET y conserva el runtime compatible al distribuir.

use plugin dotnet::{csharp}

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

Practica en By Example · Programa fuente

Python

Ejecuta Python en el proceso con imports nativos y conversión tipada. Windows con CPython 3.12 está verificado; necesitas un intérprete compatible y las dependencias nativas de los paquetes.

use plugin python::{python as py}

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

Practica en By Example · Programa fuente

JavaScript / TypeScript

Usa JavaScript y TypeScript mediante Node integrado, incluidos módulos nativos y Promises. El shim, runtime y ABI de addons deben coincidir. int de Zolo usa bigint en firmas inline.

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

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

Practica en By Example · Programa fuente

Java / Kotlin

Comparte una JVM para Java y Kotlin, con imports nativos, objetos vivos y dependencias Maven. Preparar fuentes y el editor requiere las herramientas correspondientes; las aplicaciones preparadas necesitan un JRE compatible. JVM 8, 11 y 23 están verificadas en Windows x64.

use plugin jvm::{kotlin}

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

Practica en By Example · Programa fuente

C / C++

Prepara bibliotecas C17 y C++17 con Clang. C++ expone clases concretas admitidas; la propiedad nativa y los punteros o templates no admitidos requieren adaptadores explícitos. El código preparado se ejecuta sin el compilador de fuentes.

use plugin native::{cpp}

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

print(greet("Zolo"))

Practica en By Example · Programa fuente

Rust

Compila funciones Rust tipadas y records copiados en una biblioteca específica del destino. Las dependencias Cargo participan del flujo con lock. Los artefactos distribuidos no necesitan rustc ni fuentes; objetos retenidos y genéricos abiertos requieren adaptadores.

use plugin rust::{rust}

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

Practica en By Example · Programa fuente

Go

Prepara exports Go con cgo y un compilador C compatible. Funciones tipadas, structs públicos copiados y módulos usan el puente común. Los artefactos preparados no necesitan Go ni la caché de módulos; receivers retenidos y variádicos requieren adaptadores.

use plugin go::{go}

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

Practica en By Example · Programa fuente

Tipos entre lenguajes

Tipos entre lenguajes · Dependencias y locks

DOCS / OPINIÓN

¿Esta página dejó alguna pregunta?

Cuéntanos dónde te perdió la explicación. La documentación también forma parte de la experiencia del lenguaje.

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br