Rapide comme C++, sûr comme Rust, simple comme Go — et prêt pour le futur.
Vitte est un langage de programmation systèmes et applicatif pensé pour l’ère post-2025.
Il allie performance, sécurité mémoire et expressivité, avec une philosophie claire :
“Un langage doit vous permettre de coder vite, bien, et longtemps.”
Critère | Vitte | Rust | C++17/20 | Go | Zig |
---|---|---|---|---|---|
Sécurité mémoire | ✅ Borrow-checker | ✅ Borrow-checker | ❌ (manuelle) | ✅ GC | ✅ Opt-in safety |
Backend | LLVM / Cranelift / VM | LLVM | Varié | Custom | LLVM |
Concurrency | ✅ Threads + async/await | ✅ | Partiel | ✅ Goroutines | ✅ |
Cross-compilation | ✅ intégrée | ✅ | ❌ | ✅ | ✅ |
Package manager | ✅ vitpm intégré |
✅ Cargo | ❌ | ✅ go mod | ❌ |
Syntaxe | Simple & claire | Complexe | Verbose | Minimaliste | Minimaliste |
┌──────────────┐
│ Source .vit│
└──────┬───────┘
▼
┌─────────────────┐
│ Frontend │
│ - Lexer │
│ - Parser │
│ - Borrow Checker │
└────────┬────────┘
▼
┌─────────────────┐
│ Middle-end │
│ - IR Optimisation│
│ - Inlining │
│ - Flow Analysis │
└────────┬────────┘
▼
┌────────────────────────┐
│ Backend │
│ - LLVM (opt) │
│ - Cranelift (JIT) │
│ - VitteVM (bytecode) │
└──────────┬─────────────┘
▼
Exécutable binaire
OS / Arch | Support |
---|---|
Linux x86_64 | ✅ Stable |
Linux ARM64 | ✅ Stable |
macOS Intel | ✅ Stable |
macOS Apple Silicon | ✅ Stable |
Windows 10/11 x64 | ✅ Stable |
FreeBSD / OpenBSD | 🧪 Expérimental |
RISC-V | 🧪 Expérimental |
WebAssembly | 🚧 En cours |
curl -sSL https://get.vitte.dev | sh
# Arch Linux
pacman -S vitte
# macOS (Homebrew)
brew install vitte
# Windows (Scoop)
scoop install vitte
docker run -it vitte/vitte:latest
git clone https://github.com/vitte-lang/vitte.git
cd vitte
cargo build --release
./target/release/vitc --version
do main() {
print("Hello, Vitte!")
}
my_app/
├── src/
│ ├── main.vit
│ └── utils.vit
├── vitte.toml
└── tests/
└── test_main.vit
vitc src/main.vit -o my_app
./my_app
vitc src/main.vit --target x86_64-pc-windows-gnu -o app.exe
match get_data() {
Ok(val) => print(val),
Err(e) => print("Erreur: " + e)
}
async do fetch() {
await net::get("https://vitte.dev")
}
extern(c) do printf(fmt: *u8, ...) -> i32
do main() {
printf("Nombre: %d\n", 42)
}
Élément | Exemple |
---|---|
Déclaration | let x = 10 |
Fonction | do add(a: i32, b: i32) -> i32 { a + b } |
Condition | if x > 0 { ... } else { ... } |
Boucle | for i in 0..10 { ... } |
Match | match val { ... } |
Import | use std::io |
Double licence :
Voir LICENSE-MIT et LICENSE-APACHE.