Skip to content

Arthur-Kamau/stratos

Repository files navigation

Stratos

A fast, type-safe, compiled (currently Interpreted), and fun-to-write programming language.

Objective

  • 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.

Status


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.

⚠️ Important Disclaimer

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!

Getting Started

Compiler & Interpreter

To build and use the Stratos compiler and interpreter:

  1. Navigate to interpreter/C++.
  2. Follow the instructions in interpreter/C++/README.md.

The build produces a single stratos binary that supports both compilation and interpretation modes.

VS Code Extension

To get language support in VS Code:

  1. Navigate to tooling/vscode.
  2. Follow the instructions in tooling/vscode/README.md.

Building

To install the compiler, build tools, and dependencies, check the installing section in the documentation.

License

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.

Roadmap

Check the GitHub projects dashboard. Some design notes are available in the design folder.

Contributing

We welcome contributions! Please read CONTRIBUTING.md for:

  • Development setup and building from source
  • Making the stratos binary 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

Icon

About

A low level, fast,type safe programming language.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •