A modern functional programming language designed for elegance, safety, and performance. Written in Rust, outputs to LLVM.
⭐ Star us on GitHub to support the project and allow us to submit to Homebrew! ⭐
# macOS / Linux (Homebrew)
brew install nimblesite/tap/osprey
# Windows (Scoop)
scoop bucket add nimblesite https://github.com/Nimblesite/scoop-bucket
scoop install ospreyOsprey shells out to LLVM (llc) and a C compiler at compile time; the package
managers pull those in as dependencies (llvm for brew; llvm + gcc for scoop).
The VS Code extension
(nimblesite.osprey) bundles a version-matched compiler for syntax checking.
- Functional-first: Immutable data, pattern matching, pipe operators
- Algebraic Effects: First-class effects system with compile-time safety
- Type-safe: Algebraic data types with variant types
- HTTP-native: Built-in server/client with streaming support
- Fiber concurrency: Lightweight isolated execution contexts
- Zero-cost abstractions: Compiles to efficient LLVM IR
🚀 World's first language with 100% compile-time effect safety - unhandled effects cause compilation errors, not runtime crashes!
// 🔒 HANDLER ISOLATION SIMPLE TEST 🔒
effect Logger {
log: fn(string) -> Unit
}
// Main function with different handlers
fn main() -> Unit = {
print("🔒 Testing Handler Isolation")
// Production handler
let result1 = handle Logger
log msg => print("[PROD] " + msg)
in {
perform Logger.log("Processing task: 5")
10
}
// Debug handler
let result2 = handle Logger
log msg => print("[TEST] " + msg)
in {
perform Logger.log("Processing task: 12")
24
}
// Silent handler
let result3 = handle Logger
log msg => 0
in {
perform Logger.log("Processing task: 0")
0
}
print("📊 Results: Prod=" + toString(result1) + ", Test=" + toString(result2) + ", Silent=" + toString(result3))
}
crates/- Main Osprey compiler (Rust workspace: osprey-ast, osprey-syntax, osprey-types, osprey-codegen, osprey-runtime-sys, osprey-cli)tree-sitter-osprey/- Tree-sitter grammar (parser)compiler/- Pure-C runtime sources (runtime/) + example programs (examples/)vscode-extension/- VSCode language supportwebsite/- Documentation sitewebcompiler/- Browser-based compilerhomebrew-package/- Homebrew tap.devcontainer- Configuration for the dev container
- Language specification
- API reference
- Contributing guide
- Release process — tag
v*to release; CI runs only on PRs tomain.
Built on proven tech: Rust for the compiler, tree-sitter for parsing, and LLVM for code generation.
AI-Assisted Development: Claude Sonnet 4 with Cursor makes implementing language features accessible. Check out CONTRIBUTING.md for the workflow.
Use VS Code Dev Containers - strongly recommended. Open in VS Code and hit "Reopen in Container".
make build # C runtime archives + cargo build --release + extension
make test # Run all tests + coverage thresholds
make lint # cargo clippy + extension lint
make ci # lint + test + build (full CI simulation)
make install # Install compiler + runtime archives locallyThe compiler binary lands at target/release/osprey.
🚧 Alpha: Core language features implemented. Algebraic effects system working with compile-time safety, but are missing some features. HTTP and advanced features in development.
See docs/specs/ for implementation status.
- Algebraic Effects System: Complete implementation with compile-time safety guarantees
- Effect Declarations:
effectkeyword for defining effect operations - Perform Expressions:
performkeyword for effect operations - Handler Expressions:
handle...insyntax for effect handling - Compile-Time Verification: Unhandled effects cause compilation errors (world-first!)
MIT License - see LICENSE
⭐ Give us a star on GitHub if you like what we're building! ⭐