Welcome to Lotus
Lotus is a modern systems programming language that combines the safety philosophy of Rust, the performance of C++, and the simplicity of Go. Version 1.3.0 features an LLVM backend for multi-architecture support, with a modular standard library and Rust-inspired import syntax.
Read Documentation Email the Team
Key Features
🔤 Type-First Syntax
Declare variables with type first: int count = 42;
📦 Modular Imports
Rust-inspired module system: use "io";
⚡ LLVM Backend
LLVM-powered compilation targeting x86, ARM, RISC-V, and WebAssembly
🛡️ Memory Safety
Explicit memory management with malloc/free and type safety
📚 Standard Library
Modules for I/O, memory, math, and string operations
🎯 Simple Design
Clear, readable syntax that prioritizes clarity
Quick Example
use "io";
use "hash";
fn int main() {
int h = djb2("Lotus");
printf("DJB2('Lotus'): %d\n", h);
ret 0;
}
Get Started View More Examples
Installation
Available on Arch Linux via AUR, or build from source:
AUR (Arch Linux)
yay -S lotus-lang
From Source
git clone https://github.com/j-alexander3375/Lotus.git
cd Lotus
go build -o lotus ./src
Installation Guide AUR Package
Documentation Hub
📚 Documentation Overview
Full language reference and compiler details in one place.
Open Docs
🚀 Getting Started
Spin up your environment and write your first Lotus program.
Start Here
🛠️ Installation Guide
Choose between Arch AUR, binaries, or building from source.
Install Options
💡 Code Examples
Hands-on snippets that show idiomatic Lotus patterns.
Browse Examples
🎨 Style Guide
Formatting, naming, and best practices for consistent code.
View Style Guide
🏗️ Development Guide
Contributor playbook: architecture, workflows, and reviews.
Open Development
📞 Contact & Support
Need help or want to give feedback? Reach the team directly.
Contact Page
Email Us
Standard Library Modules
Lotus comes with a modular standard library:
- io - Printf-style output with full Go-like formatting verbs
- mem - Dynamic memory allocation with malloc/free/sizeof
- math - Mathematical functions (abs, min, max, sqrt, pow, gcd, lcm)
- str - String operations (len, concat, compare, copy, indexOf, contains)
- num - Numeric conversions (toInt*, toUint*, toBool)
- hash - Hashing (djb2, fnv1a, crc32, murmur3)
- collections - Arrays, stacks, queues, heaps, hash maps/sets
- net - Sockets and send/recv helpers
- http - Simple HTTP GET built on net
Explore Stdlib