Saltar a contenido

vcraft

Bindings de CPython escritos en V. vcraft es para el lenguaje V lo que PyO3 + maturin es para Rust: un generador de código que convierte anotaciones @[vc_*] en el pegamento de una extensión, y un escritor de wheels que empaqueta el resultado. Sin Rust, C++ ni zlib en la cadena.

module hello_native

import vcraft

@[vc_fn]
pub fn greet(name string) string {
    return 'Hello, ${name}!'
}
import hello_native
print(hello_native.greet("world"))  # Hello, world!

Lo destacado

  • Un fichero V es la API. Anotas una función, una clase o un campo y el generador escribe el pegamento, los stubs de tipos y el wheel.
  • Toda la cadena es V y Python. El compilador es V; el escritor de wheels construye DEFLATE, ZIP, tar, SHA-256 y METADATA desde cero, sin zlib.
  • Rendimiento cercano a PyO3, con el estado de la instancia dentro del propio objeto.
  • Todos los CPython soportados, de 3.11 a 3.15 más los builds free-threaded, en Linux (glibc y musl), macOS y Windows.

Por dónde seguir

Hecho con vcraft

vqubit es un framework de computación cuántica para Python, sin dependencias y al estilo de Cirq: su álgebra lineal, las matrices de las puertas y los simuladores están escritos en V. Se publica como un único wheel abi3 por plataforma, para CPython 3.11 y posteriores, y no arrastra nada más — un buen ejemplo completo de un proyecto hecho con vcraft (fuente, docs).

Estado

1.4.4. El vocabulario de anotaciones, las claves de vcraft.toml y la CLI sólo cambian con un periodo de deprecación. Mira el roadmap para lo que queda, y DECISIONS.md para lo que se aparcó y por qué.