Saltar al contenido principal
rusty es un gestor de proyectos y de cadenas de herramientas de Rust, solo para Linux, reescrito en Zig. Combina almacenamiento de paquetes por contenido, control de la cadena de herramientas al estilo de rustup y rutas nativas de resolución, obtención, compilación y pruebas pensadas para monorepos grandes; no es solo una capa superficial sobre cargo.
Solo Linux, de forma permanente. rusty se basa en la semántica del sistema de archivos de Linux para el almacenamiento de contenido y la caché de compilación. macOS y Windows no son compatibles y no se añadirán.

Por qué existe rusty

rusty empezó como una herramienta interna en iResolved, LLC en un espacio de trabajo de un cliente con 3.676 crates, donde Cargo no podía mantener un ciclo útil de edición-compilación: Esas cifras provienen de la estructura real de un monorepo de producción, no de un microbenchmark. Tus resultados dependen de la estructura del grafo, de los aciertos en la caché y de si el proyecto está en la ruta nativa.

Qué hace rusty

  • Gestor de paquetes: init, lock, fetch, add, rm, update, clean; modo dual para rusty.json / rusty.lock y árboles en formato Cargo durante la migración
  • Compilación y pruebas nativas — ejecuta rustc directamente para un subconjunto declarado del proyecto; falla de forma catastrófica cuando una forma no es compatible (sin recurso silencioso de cargo para los verbos principales)
  • Cadenas de herramientas — instala / usa / muestra cadenas de herramientas (al estilo de rustup); las instalaciones predeterminadas son solo rustc + rust-std
  • Almacén de contenido — al estilo de pnpm CAS bajo $RUSTY_HOME para crates y blobs
  • Capas y caché de artefactos — caché diferencial por crate e integración con RUSTC_WRAPPER
  • Espacios de trabajo — lista de miembros, paquetes afectados por Git, dependencias inversas, informes de desviación de versiones
  • Autenticación de productos — identidad opcional basada en Clerk para cuentas solved.gg / iResolved (no es el inicio de sesión de crates.io)

Lo que rusty no es (todavía)

rusty es acceso anticipado, no paridad completa con Cargo. Prefiere esta forma de verlo:
Acceso anticipado en modo dual: ruta nativa para el subconjunto en formato «rusty» y compatibilidad creciente con el formato «cargo»; interoperabilidad explícita con cargo solo para una pequeña lista de permitidos (clippy, fmt, doc, bench, tree) y rutas de instalación opcionales.
No esperes que todas las funciones Cargo, los casos extremos del registro o las estructuras de los scripts de compilación funcionen de forma nativa desde el primer día. Las compilaciones nativas no compatibles fallan y se cierran con un error claro.

Resumen del estado

Próximos pasos

Guía rápida

Instala una cadena de herramientas, crea la estructura básica del proyecto, bloquea, descarga y compila.

Instalación

Consigue el binario rusty y configura $RUSTY_HOME.

Formatos de proyecto

rusty-format frente a cargo-format y cuándo migrar (inglés por ahora).

Referencia de CLI

Lista completa de comandos de rusty --help (inglés por ahora).

Producto y licencia

  • Página web: rusty.pm.solved.gg
  • Centro de la suite: pm.solved.gg
  • Ruta de la documentación: /rusty en este sitio web (no en la raíz de la suite)
  • Licencia: iResolved Licencia de código fuente disponible v0.1 (código fuente disponible; no es código abierto según la OSI). Las cuentas autenticadas solved.gg / iResolved pueden usar rusty bajo el EULA correspondiente, sin tener que cumplir con las condiciones de pago de esa licencia; para otras licencias comerciales: ponte en contacto con iResolved LLC.
  • Aspectos legales: Privacidad · Condiciones · EULA · CLA

Temas relacionados

Introducción