Open source · libreria per terminali
REPLAI
Pre-release
Una libreria Rust e C per costruire interfacce da terminale: input, editing Unicode e interazione, integrabili nella propria applicazione.
Esplora REPLAIRust · C ABI · Unicode · PTY · Developer tools
Terminale reale · fixture localePanoramica
Offrire input e interazione da terminale come libreria integrabile, separando il motore di editing dalla logica dell’applicazione.
Architettura, API Rust, ABI C, modello di interazione, renderer terminale, test PTY e qualificazione multipiattaforma.
Contesto
Le applicazioni da terminale hanno bisogno di editing, completamento e messaggi senza accoppiare il proprio dominio al renderer. I risultati asincroni devono rimanere coerenti con l’input corrente.
Architettura
Core Rust, modalità di integrazione blocking, session e driven, ABI C dedicata e consumatori di prova. Snapshot revisionati collegano risultati e stato; il renderer e i test PTY osservano l’interazione nel terminale.
- Modalità blocking, session e driven in Rust
- C ABI 1
- Runtime Linux e macOS; core portabile verificato separatamente
Implementazione e decisioni
Rust come nucleo, C come interfaccia
Le modalità Rust consentono diversi gradi di controllo sul ciclo d’interazione. L’ABI C espone un contratto più ristretto: non tutte le funzioni Rust sono automaticamente disponibili dall’altra interfaccia.
Risultati legati alla versione dello stato
Un suggerimento o un’analisi possono arrivare dopo che l’input è cambiato. Il controllo degli snapshot impedisce di applicare un risultato obsoleto allo stato nuovo.
Test nel terminale, non soltanto sulle stringhe
Unicode, editing e comportamento del renderer richiedono sia test del nucleo sia prove tramite pseudo-terminale. La portabilità del core è distinta dalla disponibilità del runtime.
Verifica
La revisione ha riscontrato test Rust su analisi e snapshot, test dell’interfaccia C e test PTY. La CI pubblica documenta un’esecuzione riuscita; Linux e macOS sono i runtime indicati, mentre i controlli Windows riguardano il core.
Stato attuale
Pre-release. È materiale per integrazione e valutazione tecnica, non una promessa di compatibilità immutabile o di runtime completo su ogni piattaforma.