Skip to content

Changelog

LUMOS v0.3.0 - Enhanced Error Tracking & Multi-Language Support

  • Precise Error Messages: Type validation errors now show exact line:column location
  • Better Developer Experience: Find and fix issues faster with pinpoint accuracy
  • Example: Undefined type 'Player' (at 2:5) instead of generic errors

🔄 Complete Enum Migration Generation (#122)

Section titled “🔄 Complete Enum Migration Generation (#122)”
  • Automatic Migration Code: Generate full Rust From impls and TypeScript migration functions
  • Schema Evolution Made Easy: Handles variant additions, removals, and all variant types
  • Smart Mapping: Removed variants automatically map to sensible defaults with clear comments

🚀 Language Server Protocol (LSP) Enhancements

Section titled “🚀 Language Server Protocol (LSP) Enhancements”
  • Context-Aware Completions (#120): Smarter autocomplete based on cursor position
  • Document Formatting (#129): Format-on-save support for .lumos files
  • Enhanced Diagnostics: Better error detection and hover information
  • Seahorse Python (#56): Generate Python programs for Solana
  • Go & Ruby Support: Full code generation for Go and Ruby
  • Unified Interface: Use --lang flag for any target language
  • Metaplex Token Metadata (#58): Full compatibility with NFT standard
  • Native Solana Support (#57): Generate programs without Anchor framework
  • 322 Tests Passing: Comprehensive test coverage (120 new tests since v0.2.0)
  • Zero Warnings: All clippy lints resolved
  • Cross-Language Compatibility (#117): Verified schema compatibility across languages
Terminal window
# Install or update CLI
cargo install lumos-cli
# Install or update LSP server
cargo install lumos-lsp
# Verify installation
lumos --version # Should show 0.3.0

See ROADMAP.md for upcoming features.

See CHANGELOG.md for detailed changes.


Compatibility: Fully backward compatible with v0.2.x schemas Support: https://github.com/getlumos/lumos/issues Documentation: https://lumos-lang.org


Links:

v0.2.0 - Type Aliases & Multi-File Imports

🎉 LUMOS v0.2.0 - Type Aliases & Multi-File Imports

Section titled “🎉 LUMOS v0.2.0 - Type Aliases & Multi-File Imports”

Major release bringing schema organization and DRY principles to LUMOS!

  • Rust-style syntax: type UserId = PublicKey;
  • Recursive resolution with circular reference detection
  • Generate pub type (Rust) and export type (TypeScript)
  • Support for all types: primitives, Solana types, collections
  • JavaScript-style syntax: import { Type1, Type2 } from "./file.lumos";
  • Automatic import discovery and resolution
  • Multi-line import support
  • Circular import detection
  • Cross-file type validation
  • 340-line multi-file schema manager
  • Automatic dependency discovery
  • Import caching
  • Three-pass validation (collect → resolve → validate)
Terminal window
# Install or upgrade CLI
cargo install lumos-cli@0.2.0
# Or update existing installation
cargo install --force lumos-cli

Type Aliases:

type UserId = PublicKey;
type Lamports = u64;
type UserList = [PublicKey];
struct Account {
owner: UserId,
balance: Lamports,
}

Multi-File Imports:

types.lumos
type UserId = PublicKey;
enum AccountStatus { Active, Frozen, Closed }
// accounts.lumos
import { UserId, AccountStatus } from "./types.lumos";
struct UserAccount {
user: UserId,
status: AccountStatus,
}
  • ✅ All 202 tests passing (100% success)
  • ✅ E2E compilation verified
  • ✅ 4 new file_resolver tests
  • Comprehensive examples in examples/type_aliases.lumos (200+ lines)
  • Multi-file examples in examples/imports/ (7 files)
  • Complete usage guide and troubleshooting

Phase 5.3 continues with:

  • Nested module support (#53)
  • Generic struct/enum definitions (#54)

Phase 5.3 Progress: 60% complete (3/5 issues)


Alhamdulillah! Thank you to everyone supporting LUMOS development. 🎉


Links:

v0.1.1 - Security & Fuzzing Improvements

This release focuses on security improvements, Language Server Protocol (LSP) support, and schema evolution features.


  • User-defined type validation during transformation
  • Path traversal protection in CLI
  • u64 precision warnings in TypeScript output

  • Schema versioning with #[version] attribute
  • Automatic migration code generation
  • Backward compatibility validation
  • Deprecation warnings for schema fields
  • Schema diff tool: lumos diff
  • Language Server Protocol (LSP) implementation
  • Custom derive macros support
  • Fixed-size arrays with const generics

  • Enhanced error messages with source location tracking
  • Expanded test suite to 202 tests (from 64)

  • lumos-core v0.1.1 - Core library with security fixes
  • lumos-cli v0.1.1 - CLI with path validation
  • lumos-lsp v0.1.0 - Language Server Protocol support

v0.1.0 - Initial Release

We’re thrilled to announce the first stable release of LUMOS! After months of development and testing, LUMOS is now production-ready and published on crates.io.

  • lumos-core v0.1.0 - Core library (parser, generators, IR)
  • lumos-cli v0.1.0 - Command-line interface

Install now:

Terminal window
cargo install lumos-cli

  • Single Source of Truth - Write schemas once, generate Rust + TypeScript
  • 100% Type Safety - Guaranteed synchronization between languages
  • Anchor Integration - First-class support for Anchor programs
  • Borsh Serialization - Auto-generated schemas for both languages
  • Context-Aware Generation - Smart import and derive management
  • Primitives: u8, u16, u32, u64, u128, i8-i128, bool
  • Solana: PublicKey, Signature
  • Complex: String, Vec<T>, Option<T>
  • Structs: With #[solana] and #[account] attributes
  • Enums: Unit, Tuple, and Struct variants
  • lumos init - Initialize new project
  • lumos generate - Generate Rust + TypeScript code
  • lumos validate - Validate schema syntax
  • lumos check - Verify generated code is up-to-date

  • 64/64 tests passing (100% success rate)
  • E2E tests with actual Rust compilation
  • Zero clippy warnings
  • Zero rustfmt violations
  • Zero vulnerabilities (security audit clean)
  • 5 real-world examples (Gaming, NFT, DeFi, DAO, Token Vesting)

LUMOS uses an Intermediate Representation (IR) architecture:

.lumos → Parser (syn) → AST → Transform → IR → Generators → .rs + .ts

This design makes it easy to add support for new target languages in the future (Python, C++, Go, etc.)



Write once:

#[solana]
#[account]
struct PlayerAccount {
wallet: PublicKey,
level: u16,
experience: u64,
}

Get perfect code in both languages with guaranteed Borsh compatibility!


Thank you to:

  • Solana Foundation - For building an incredible blockchain ecosystem
  • Anchor Team - For the excellent Solana development framework
  • Rust Community - For syn, quote, and amazing tooling
  • Early testers - For feedback and bug reports

Check out our Roadmap for upcoming features:

  • Phase 4.1: VSCode extension polish and marketplace publishing
  • Phase 4.2: Real-world community examples
  • Phase 4.3: Interactive playground and comprehensive tutorials
  • Phase 5: Advanced features (LSP, schema evolution, enhanced type system)

Get Started: Installation Guide

Built with ❤️ for the Solana community