Skip to content

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: