| Crates.io | susumu |
| lib.rs | susumu |
| version | 0.2.0 |
| created_at | 2025-08-14 19:10:39.890595+00 |
| updated_at | 2025-08-15 21:27:47.606791+00 |
| description | Revolutionary functional language making data flow visible through arrow syntax |
| homepage | https://susumu.dev |
| repository | https://github.com/susumu-lang/susumu |
| max_upload_size | |
| id | 1795367 |
| size | 555,532 |
Susumu is a revolutionary functional programming language that uses arrow syntax to make data flow visually explicit. Instead of forcing developers to mentally trace data through complex systems, Susumu makes the data journey visible through arrows.
From Cargo (Rust):
cargo install susumu
From GitHub Releases:
# Download binary for your platform from GitHub releases
curl -L https://github.com/susumu-lang/susumu/releases/latest/download/susumu-linux -o susumu
chmod +x susumu
VSCode Extension: Install the "Susumu Language Support" extension from the VSCode marketplace for syntax highlighting, LSP support, and integrated development features.
Create a file hello.susu:
main() {
"Hello, Susumu!" -> print
}
Run it:
susumu hello.susu
Traditional code hides data flow:
# Python - data flow is hidden
result = process_data(validate_input(user_input))
Susumu makes data flow explicit:
# Susumu - data flow is visual
user_input -> validate_input -> process_data -> result
Arrow Operations:
5 -> double -> add_ten -> print # Forward flow: 5 → double → add_ten → print
data -> process <- config # Convergence: data and config flow into process
Functions:
double(x) { x -> multiply <- 2 }
process_order(order) {
order -> validate -> calculate_total -> charge_payment
}
Control Flow:
user -> authenticate -> i success {
user -> load_dashboard -> return <- dashboard
} e {
user -> redirect_login -> error <- "Authentication failed"
}
Complex Example:
process_payment(order, payment_method) {
order -> validate_items -> i valid {
(order, payment_method) -> charge_card -> i success {
order -> update_inventory ->
send_confirmation ->
return <- order_confirmation
} e {
order -> refund ->
notify_failure ->
error <- payment_error
}
} e {
order -> error <- validation_error
}
}
# Clone the repository
git clone https://github.com/susumu-lang/susumu.git
cd susumu
# Build the interpreter
cargo build --release
# Build the LSP server
cargo build --bin susumu-lsp --features lsp --release
# Run tests
cargo test
cd vscode-extension
npm install
npm run compile
npm run package # Creates susumu-language-x.x.x.vsix
Traditional debugging requires mental tracing through code. Susumu's arrow syntax makes data flow immediately visible:
// Bug immediately visible: payment processed before validation
order -> charge_payment -> validate_order // ❌ Wrong order!
// Correct flow is obvious:
order -> validate_order -> charge_payment // ✅ Correct
susumu/
├── core/ # Core Rust interpreter
│ ├── src/
│ │ ├── lexer.rs # Tokenization
│ │ ├── parser.rs # AST generation
│ │ ├── interpreter.rs # Execution engine
│ │ ├── lsp.rs # Language Server Protocol
│ │ ├── ast.rs # Abstract Syntax Tree
│ │ ├── builtins.rs # Built-in functions
│ │ └── main.rs # CLI entry point
│ ├── Cargo.toml # Rust package manifest
│ └── tests/ # Integration tests
├── vscode-extension/ # VSCode language support
│ ├── src/ # Extension source
│ ├── syntaxes/ # TextMate grammars
│ └── package.json # Extension manifest
├── examples/ # Example programs (.susu files)
├── docs/ # Documentation
├── assets/ # Project assets (logo, etc.)
└── scripts/ # Development and testing scripts
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git checkout -b feature/amazing-featurecargo testThis project is licensed under the MIT License - see the LICENSE file for details.
The core insight: Traditional debugging is detective work. Susumu debugging is watching a movie of your data's journey.
Susumu transforms programming from hidden complexity to visual clarity. Our goal is to make complex data flows as easy to understand as following arrows on a map.
Built with ❤️ by the Susumu community