Windjammer Programming Language
Write simple code. Run it fast. Debug it easily.
A high-level programming language that combines Go's ergonomics with Rust's safety and performanceβplus world-class IDE support.
π― The 80/20 Language: 80% of Rust's power with 20% of the complexity
π οΈ Production-Ready Tooling: Complete LSP, debugging, and editor integration
π Read the detailed comparison: Windjammer vs Rust vs Go
What is Windjammer?
Windjammer is a pragmatic systems programming language that compiles to Rust, JavaScript, and WebAssembly, giving you:
β
Memory safety without garbage collection
β
Rust-level performance (99%+ measured)
β
Multi-target compilation - Rust, JavaScript (ES2020+), WebAssembly
β
276x faster compilation with incremental builds
β
Automatic ownership inference - no manual borrowing
β
Go-style concurrency - familiar go keyword and channels
β
Modern syntax - string interpolation, pipe operator, pattern matching
β
100% Rust compatibility - use any Rust crate
β
World-class IDE support - LSP, debugging, refactoring in VSCode/Vim/IntelliJ
β
AI-powered development - MCP server for Claude, ChatGPT code assistance
β
Production-ready - comprehensive testing, fuzzing, security audit (A+ rating)
β
No lock-in - wj eject converts your project to pure Rust anytime
Perfect for: Web APIs, CLI tools, microservices, data processing, learning systems programming
Philosophy: Provide 80% of developers with 80% of Rust's power while eliminating 80% of its complexity.
Quick Start
Install
# macOS / Linux
# Or via Cargo
# Or from source
Hello World
Create hello.wj:
fn main() {
let name = "World"
println!("Hello, ${name}!") // String interpolation!
}
Run it:
HTTP Server Example
use std::http
fn main() {
let server = http::Server::new()
server.get("/", |req| {
http::Response::ok("Hello from Windjammer!")
})
server.get("/user/:name", |req| {
let name = req.param("name")
http::Response::ok("Hello, ${name}!")
})
println!("Server running on http://localhost:3000")
server.listen(3000)
}
Key Features
1. Memory Safety Without the Complexity
Windjammer infers ownership and lifetimes automatically:
// No lifetime annotations needed!
fn longest(s1: str, s2: str) -> str {
if s1.len() > s2.len() { s1 } else { s2 }
}
Compiles to safe Rust:
2. Go-Style Concurrency
fn main() {
let ch = chan::new()
go {
ch.send("Hello from goroutine!")
}
let msg = ch.recv()
println!(msg)
}
3. Multi-Target Compilation
# Compile to native binary
# Compile to JavaScript (Node.js or browser)
# Compile to WebAssembly
4. Modern Syntax
// String interpolation
let name = "Windjammer"
println!("Hello, ${name}!")
// Pipe operator
let result = data
|> parse()
|> validate()
|> process()
// Pattern matching with guards
match value {
Some(x) if x > 0 => println!("Positive: ${x}")
Some(x) => println!("Non-positive: ${x}")
None => println!("No value")
}
// Defer statement
fn read_file(path: str) -> Result<String, Error> {
let file = fs::open(path)?
defer file.close()
file.read_to_string()
}
5. World-Class IDE Support
Language Server Protocol (LSP):
- β Real-time type checking and error highlighting
- β Auto-completion for functions, types, and variables
- β Go-to-definition and find-references
- β Hover documentation
- β Inline code hints
- β Refactoring support (rename, extract function, inline variable)
- β Integration with VS Code, IntelliJ, Neovim, Emacs
MCP Server (AI Integration):
- β Claude, ChatGPT integration for code assistance
- β Natural language to Windjammer code translation
- β Automated refactoring suggestions
- β Intelligent error diagnosis and fixes
6. Zero Lock-In
Not sure if Windjammer is right for you? No problem!
Converts your entire project to pure Rust:
- β Production-quality Rust code
- β
Complete
Cargo.tomlwith dependencies - β
Formatted with
rustfmt, validated withclippy - β No vendor lock-in whatsoever
Language Features
Core Features
- β Ownership and lifetime inference
- β Trait bound inference
- β Pattern matching with guards
- β Go-style concurrency (channels, spawn, defer)
- β String interpolation
- β Pipe operator
- β Decorator system
- β Macro system
- β Result and Option types
- β
Error propagation with
?
Type System
- β Strong static typing
- β Type inference
- β Generics
- β Traits (like Rust traits)
- β Sum types (enums)
- β Product types (structs)
- β Newtype pattern
Safety
- β No null pointers
- β No data races
- β Memory safety without GC
- β Thread safety
- β Immutable by default
Performance
Compilation Speed:
- β 276x faster hot builds (incremental compilation with Salsa)
- β Cold build: ~5-10s for medium project
- β Hot build: ~50ms for single file change
Runtime Performance:
- β 99%+ of Rust's performance (measured in benchmarks)
- β Zero-cost abstractions
- β No garbage collection overhead
- β SIMD vectorization
- β Advanced optimizations (15-phase pipeline)
Architecture
Windjammer compiles through multiple stages:
.wj file β Lexer β Parser β Analyzer β Optimizer β Codegen β Target Code
β
15 Optimization Phases:
1-10: Analysis & transformation
11: String interning
12: Dead code elimination
13: Loop optimization
14: Escape analysis
15: SIMD vectorization
Targets:
- Rust β Native binaries (Linux, macOS, Windows)
- JavaScript β Node.js or browser (ES2020+, tree-shaking, minification)
- WebAssembly β Browser or WASI runtime
Project Status
Current Version: 0.37.3
Status: Production-ready for early adopters
What's Complete:
- β Core language features
- β Multi-target compilation
- β 15-phase optimization pipeline
- β LSP server with full IDE integration
- β MCP server for AI assistance
- β Standard library (fs, http, json, crypto, etc.)
- β Testing framework
- β Fuzzing infrastructure
- β Security audit (A+ rating)
- β 420+ tests passing
What's Next:
- π Async/await syntax
- π Const generics
- π More standard library modules
- π Documentation generator (
wj doc) - π Package manager
- π More language examples
Examples
See the examples/ directory for more:
- HTTP Server - RESTful API with routing
- CLI Tool - Command-line argument parsing
- Concurrent Processing - Channels and goroutines
- WebAssembly - Browser applications
- Database Access - SQL queries with connection pooling
Documentation
- Installation Guide
- Language Guide
- API Reference
- Architecture
- Comparison with Rust and Go
- Contributing
- Roadmap
Community
- GitHub: github.com/jeffreyfriedman/windjammer
- Issues: Report bugs or request features
- Discussions: Ask questions and share projects
License
Dual-licensed under MIT OR Apache-2.0
Credits
Created by Jeffrey Friedman and contributors.
Inspiration:
- Rust (safety and performance)
- Go (simplicity and concurrency)
- Swift (developer experience)
- TypeScript (gradual typing)
Related Projects
- windjammer-ui - Cross-platform UI framework
- windjammer-game - Game development framework (private beta)
Made with β€οΈ by developers who believe programming should be both safe AND simple.