A fast, type-safe, compiled (currently Interpreted), and fun-to-write programming language.
- Fast
- Low-level (with managed abstractions where needed)
- Mix of functional and OOP paradigms
- Flexible (write scripts, huge monolith projects)
- Compiled/Interpreted language (supports both modes)
- Ability to generate static binaries.
The Stratos C++ Interpreter is the primary implementation, featuring a handwritten recursive descent parser and AST-walking interpreter. It supports a growing Standard Library including File I/O, JSON, HTTP, and SQLite database support.
The Stratos Package Manager is now integrated, allowing project creation (new), building (build), and dependency management.
A VS Code extension provides syntax highlighting and basic language support.
Solo Project with AI Assistance: Stratos is a solo project developed with heavy use of AI assistance (Claude Code/Gemini 3) throughout the language design, compiler implementation, standard library, and tooling. While this has enabled rapid development and exploration of language features, please be aware:
- This is an experimental project under active development
- The codebase may contain bugs, incomplete features, or unconventional design patterns
- Use at your own risk - not recommended for production use
- Testing coverage is limited and evolving
- Breaking changes may occur frequently as the language design evolves
If you encounter issues or have suggestions, please open an issue on GitHub. Contributions and feedback are welcome!
To build and use the Stratos compiler and interpreter:
- Navigate to
interpreter/C++. - Follow the instructions in
interpreter/C++/README.md.
The build produces a single stratos binary that supports both compilation and interpretation modes.
To get language support in VS Code:
- Navigate to
tooling/vscode. - Follow the instructions in
tooling/vscode/README.md.
To install the compiler, build tools, and dependencies, check the installing section in the documentation.
Stratos is distributed under the terms of the Apache License (Version 2.0) and MIT license depending on the submodule. See license folder for details.
Check the GitHub projects dashboard.
Some design notes are available in the design folder.
We welcome contributions! Please read CONTRIBUTING.md for:
- Development setup and building from source
- Making the
stratosbinary globally available during development - Running tests and using git hooks
- Code style guidelines and PR submission process
All code should follow the Stratos Style Guide. Use stratos fmt . -w to format your code before submitting PRs.
Quick start for developers:
# Clone and build
git clone https://github.com/Arthur-Kamau/stratos.git
cd stratos/interpreter/C++
bash build.sh
# Make binary globally available (so you can use 'stratos' from anywhere)
mkdir -p ~/bin
ln -sf "$(pwd)/interpreter/C++/build/stratos" ~/bin/stratos
export PATH="$HOME/bin:$PATH" # Add to ~/.bashrc to make permanent
# Run tests
cd ../..
./test-all.sh