Referencias y Recursos¶
Para aprender Rust¶
| Recurso | URL | Notas |
|---|---|---|
| The Book (español) | https://book.rustlang-es.org | Empezar acá |
| Rustlings | https://rustlings.cool | Ejercicios prácticos |
| Rust by Example (español) | https://doc.rust-lang.org/rust-by-example | Cuando querés código directo |
| RustLangES comunidad | https://rustlang-es.org | Roadmap, recursos, Discord |
| Curso de Google (Comprehensive Rust) | https://google.github.io/comprehensive-rust | Para developers con experiencia |
Para construir el lenguaje¶
Libros¶
- "Writing An Interpreter In Go" — Thorsten Ball. El mejor recurso para aprender a construir un intérprete. Existe versión Rust de la comunidad.
- "Crafting Interpreters" — Robert Nystrom. Disponible gratis en https://craftinginterpreters.com. Muy completo, va desde intérprete a VM.
Crates de Rust útiles¶
| Crate | Para qué | URL |
|---|---|---|
logos |
Lexer generator | https://crates.io/crates/logos |
pest |
Parser generator (PEG) | https://crates.io/crates/pest |
nom |
Parser combinator | https://crates.io/crates/nom |
axum |
HTTP server (Fase 4, en uso) | https://crates.io/crates/axum |
tokio |
Async runtime de axum (Fase 4, en uso) | https://crates.io/crates/tokio |
serde + serde_json |
Serialización JSON (en uso) | https://crates.io/crates/serde |
miette |
Errores con diagnósticos bonitos (en uso) | https://crates.io/crates/miette |
clap |
CLI argument parsing (en uso) | https://crates.io/crates/clap |
inkwell |
LLVM bindings — referencia, no se usa: Fitz 5b transpila a Rust en vez de bajar a LLVM directo | https://crates.io/crates/inkwell |
cranelift |
Codegen alternativa — referencia, no se usa por la misma razón | https://crates.io/crates/cranelift |
syn + quote |
AST de Rust (dev-dep: tests del codegen) | https://crates.io/crates/syn |
tower + http-body-util |
Tests E2E de HTTP sin abrir socket | https://crates.io/crates/tower |
tempfile |
Fixtures temporales en tests del loader de módulos | https://crates.io/crates/tempfile |
Lenguajes para estudiar como referencia¶
| Lenguaje | Qué tomar | Repo |
|---|---|---|
| Gleam | Sintaxis limpia, tipos, mensajes de error | https://github.com/gleam-lang/gleam |
| Rhai | Scripting embebible en Rust | https://github.com/rhaiscript/rhai |
| Mun | Lenguaje con hot reload, escrito en Rust | https://github.com/mun-lang/mun |
| Inko | Concurrencia y tipos, escrito en Rust | https://github.com/inko-lang/inko |
| Ante | Tipado gradual, ergonomía | https://github.com/jfecher/ante |
Comunidades¶
- r/ProgrammingLanguages — comunidad sobre diseño de lenguajes
- Discord de RustLangES — comunidad Rust en español
- Crafting Interpreters Discord — comunidad del libro
- Programming Language Discord — https://discord.gg/4Kjt3ZE
Inspiraciones de diseño¶
| Feature de Fitz | Inspirado en |
|---|---|
| Sintaxis general | Python |
| Tipado gradual | TypeScript |
fn, match, Result |
Rust |
| Decoradores HTTP | FastAPI (Python) |
Nulabilidad con ? |
Kotlin |
| Compilado, binario único | Go |
| Punto y coma opcional | Go, Kotlin, Swift |
| Sin clases, solo tipos | Rust, Go |