| Crates.io | windjammer-runtime |
| lib.rs | windjammer-runtime |
| version | 0.39.6 |
| created_at | 2025-11-23 02:32:17.685487+00 |
| updated_at | 2026-01-07 02:58:09.775921+00 |
| description | Runtime library for Windjammer standard library implementations |
| homepage | |
| repository | https://github.com/jeffreyfriedman/windjammer |
| max_upload_size | |
| id | 1946020 |
| size | 365,749 |
Runtime library backing Windjammer's standard library with production-grade Rust implementations.
windjammer-runtime is the bridge between Windjammer's clean, high-level standard library API and battle-tested Rust crates. When you write:
use std::http
fn main() {
http.serve("0.0.0.0:3000", handler)
}
The Windjammer compiler generates Rust code that calls windjammer_runtime::http, which provides clean abstractions over axum and reqwest.
Proper Abstraction: Windjammer controls the API contract, not external crates. If axum breaks compatibility in v0.8, we update windjammer-runtime internally—your Windjammer code keeps working.
No Crate Leakage: You write std::http, not axum::. You write std::json, not serde_json::. Clean, stable APIs.
Future Flexibility: We can swap implementations (e.g., hyper → axum → something better) without breaking user code.
http - HTTP client (reqwest) + server (axum)json - JSON serialization/deserialization (serde_json)fs - File operations (Rust stdlib)log - Production logging (env_logger)regex_mod - Regular expressions (regex crate)db - Database access (sqlx)time - Time/date utilities (chrono)crypto - Cryptography (sha2, bcrypt, base64)random - Random generation (rand)env - Environment variablesprocess - Process executioncollections - Data structurescli - CLI argument parsing (clap)testing - Test assertionscsv_mod - CSV parsing (csv)strings - String utilitiesmime - MIME type handling (mime_guess)This crate is not intended for direct use. It's automatically included when the Windjammer compiler generates Rust code that uses stdlib modules.
// Generated by Windjammer compiler
use windjammer_runtime::http;
use windjammer_runtime::json;
#[tokio::main]
async fn main() {
// Clean API, backed by reqwest/axum
let client = http::Client::new();
let response = client.get("https://api.example.com").await.unwrap();
println!("{}", response.body);
}
Windjammer User Code (.wj)
↓
Windjammer Compiler
↓
Generated Rust Code (.rs)
↓
windjammer-runtime (this crate)
↓
Underlying Rust Crates (axum, reqwest, serde_json, etc.)
# Run all tests
cargo test --all-features
# Run stdlib integration tests
cargo test --test integration_tests
# Run smoke tests
cargo test --test smoke_test
db - Database support via sqlx (optional, off by default)windjammer-runtime versions are synchronized with Windjammer:
This crate is part of the Windjammer project. See the main repository for contribution guidelines.
Dual-licensed under MIT or Apache 2.0, same as Windjammer.