EL IDE

Un editor de verdad, no un juguete

Navegador de archivos, resaltado de sintaxis, diagnósticos del compilador real, consola con pestaña de Forge y una barra de teclado pensada para Rust.

Forge + crates.io
Motor de build nativo en Swift: resuelve dependencias, descarga crates y decide qué recompilar — todo on-device. Experimental.
Proyectos reales
Crates embebidos no_std como embassy, defmt y panic-probe — no un subconjunto de juguete.
RP2350 · UF2
Elige el target y Ferric emite un UF2 flasheable — toda la toolchain, en el iPad.
TODO LO QUE ESPERAS

Un IDE completo, no un campo de código

Archivos, búsqueda, diagnósticos reales, git, tests, un explorador de bibliotecas y una consola — las herramientas que usas cada día, corriendo por completo en tu iPad.

Editor Monaco
El mismo núcleo de editor que VS Code, afinado para touch: resaltado de sintaxis, emparejado de llaves, multi-cursor y errores en línea.
Diagnósticos reales
Los errores y avisos vienen del rustc de verdad — códigos, spans y sugerencias — no de la conjetura de un linter.
Navegador de archivos
Un árbol de proyecto real: crea, renombra y mueve archivos en un proyecto Cargo multi-archivo.
Búsqueda en el proyecto
Encuentra cualquier símbolo o cadena en todos los archivos y salta directo a la coincidencia.
Git integrado
Prepara, commitea y lee un diff real — tu historial vive on-device, sin remoto necesario.
Runner de tests
Ejecuta funciones #[test] con el harness real y lee la salida de pass/fail en línea.
Explorador de bibliotecas
Navega el código fuente de tus crates externos — lee lo que usas sin salir de la app.
Consola + pestaña Forge
Una consola dividida: la salida de tu programa en una pestaña, el log del motor de build Forge en otra.
DIAGNÓSTICOS REALES

Los errores son los del propio Rust

Sin aproximaciones. Cuando tu código no compila obtienes el mensaje exacto de rustc — código de error, el borrow que se movió, la línea y un arreglo — porque es el rustc exacto, corriendo en tu dispositivo.

consola — problemas
error[E0382]: uso de valor movido: `name`
--> src/main.rs:4:20
|
2 | let name = String::from("Fe");
| ---- move occurs because `name` has type `String`
3 | let tag = name;
| ---- value moved here
4 | println!("", name);
| ^^^^ value borrowed here after move
help: considera clonar el valor: `name.clone()`

Un E0382 genuino — mismo código, mismos spans que rustc en escritorio.

  • Subrayados en línea — los errores marcan el span exacto en el editor, con el mensaje al pasar el cursor.
  • Panel de problemas — cada diagnóstico recogido en una lista; toca para saltar a la línea.
  • Límites honestos — si un crate no puede compilar on-device, Ferric lo dice con claridad en vez de colgarse.
CONTROL DE VERSIONES Y TESTS

Commit, diff y test — en el dispositivo

Ferric trae un git de verdad y un harness de tests de verdad. Lleva tu trabajo con commits y diffs, y ejecuta tus funciones #[test] justo donde las escribiste.

git — diff & commit
$ git diff src/lib.rs
- fn parse(s: &str) -> u32 { s.parse().unwrap() }
+ fn parse(s: &str) -> Option<u32> { s.parse().ok() }
$ git commit -m "parse devuelve Option"
[main a1f2c3d] parse devuelve Option — 1 archivo cambiado

Prepara, diff y commit sin salir del editor.

tests — cargo test
running 3 tests
test parse_ok ... ok
test parse_empty ... ok
test rechaza_letras ... ok
test result: ok. 3 passed; 0 failed

Funciones #[test] reales, salida real del harness.

Barra de teclado Rust
Una fila accesoria sobre el teclado con los símbolos en los que Rust se apoya — &, ::, ->, |, !, y más — para que no busques en la capa de símbolos del iPad a media línea.
Pensado para touch
Áreas táctiles, gestos y maquetación diseñados para programar con los pulgares en una tablet — no una UI de escritorio encogida.

Compila Rust en tu iPad

Empieza gratis con el Scratchpad y el curso Aprende Rust, y desbloquea proyectos Forge con dependencias reales de crates.io cuando los necesites.