Skip to main content
Examples Verified (100%)

Roadmap

T-Ruby is under active development. This roadmap outlines the current status, upcoming features, and long-term vision for the project.

Project Status

Active Development

T-Ruby is currently in active development. While core features are stable and well-tested, the language and tooling continue to evolve. Breaking changes may occur between versions.

Current Version: v0.0.39 License: MIT

Completed Milestones

Milestone 1: Basic Type Parsing & Erasure ✅

  • Parameter/return type annotations
  • Type erasure for valid Ruby output
  • Error handling and validation

Milestone 2: Core Type System ✅

FeatureDescription
Type Aliasestype UserId = String
Interfacesinterface Readable ... end
Union TypesString | Integer | nil
GenericsArray<String>, Map<K, V>
IntersectionsReadable & Writable
RBS Generation.rbs file output

Milestone 3: Ecosystem & Tooling ✅

FeatureStatus
LSP Server✅ Implemented
Declaration Files (.d.trb)✅ Implemented
VSCode Extension✅ Published
JetBrains PluginMarketplace
Vim/Neovim Integration✅ Available
Stdlib Types✅ Comprehensive coverage

Milestone 4: Advanced Features ✅

FeatureDescription
Constraint SystemGeneric type constraints
Type InferenceAutomatic type detection
Runtime ValidationOptional runtime checks
Type CheckingSMT-based type verification
CachingIncremental compilation support
Package ManagementType package system

Milestone 5: Infrastructure ✅

FeatureDescription
Bundler IntegrationRuby ecosystem integration
IR SystemIntermediate representation with optimization passes
Parser CombinatorComposable parsers for complex type grammars
SMT SolverConstraint solving for advanced type inference

Milestone 6: Integration & Production Readiness ✅

FeatureStatus
Parser Combinator Integration✅ Replaced legacy parser
IR-based Compiler✅ Full IR pipeline
SMT-based Type Checking✅ Integrated
LSP v2 + Semantic Tokens✅ Type-based syntax highlighting
Incremental Compilation✅ Cache-based
Cross-file Type Checking✅ Multi-file support
Rails/RSpec/Sidekiq Types✅ Available
WebAssembly Target@t-ruby/wasm (v0.0.8)

Current Focus

Milestone 7: Next Generation (In Progress)

FeatureDescriptionStatus
External SMT Solver (Z3)Enhanced type inference with Z3Planned
LSP v3Language Server Protocol 3.x supportPlanned
Type-safe MetaprogrammingSafe define_method, method_missingPlanned
Gradual Typing MigrationTools for migrating existing Ruby codePlanned

Planned Features

Type System Enhancements

  • Tuple types ([String, Integer, Boolean])
  • Recursive type aliases
  • Variance annotations (in, out)
  • Conditional types (T extends U ? X : Y)
  • Mapped types
  • Readonly modifier

Advanced Type Features

  • Template literal types
  • Discriminated unions
  • Branded types
  • Opaque types
  • Dependent types (research)

Module System

  • Module type annotations
  • Namespace support
  • Import/export type syntax
  • Module interfaces

Future Vision

Advanced Features

  • Effect system (tracking side effects)
  • Ownership and borrowing concepts
  • Algebraic data types
  • Pattern matching types
  • Refinement types

Ecosystem

  • Type definition repository
  • Cloud-based type checking service
  • Sorbet compatibility mode
  • Steep integration

Research Areas

We're actively researching these advanced features:

1. Effect Types

Track side effects in the type system:

def read_file(path: String): String throws IOError
def calculate(x: Integer): Integer pure

2. Dependent Types

Types that depend on values:

def create_array<N: Integer>(size: N): Array<T>[N]
# Returns array of exactly N elements

3. Linear Types

Ensure resources are used exactly once:

def process_file(handle: File) consume: String
# handle can't be used after this call

4. Row Polymorphism

Flexible record types:

def add_id<T: { ... }>(obj: T): T & { id: Integer }

Version History

ComponentCurrent Version
Compilerv0.0.39
VSCode Extensionv0.2.0
JetBrains Pluginv0.1.2
WASM Packagev0.0.8

Breaking Changes Policy

Current Phase (Pre-1.0)

  • Breaking changes may occur in any release
  • Deprecation warnings provided when possible
  • Migration guides for major changes
  • Changelog documents all breaking changes

Stable Phase (v1.0+)

  • No breaking changes in patch versions
  • Breaking changes only in major versions
  • Minimum 6-month deprecation period
  • Automated migration tools
  • LTS releases for enterprises

How to Influence the Roadmap

We welcome community input:

  1. Vote on Features - Star issues on GitHub to show interest
  2. Request Features - Open a feature request

Get Involved

Help shape T-Ruby's future:

  • Documentation - Improve docs and examples
  • Testing - Report bugs and edge cases
  • Features - Propose and implement features
  • Tooling - Build editor extensions
  • Types - Add stdlib and gem type definitions
  • Community - Answer questions, write tutorials

See our Contributing Guide to get started.

Stay Updated

  • GitHub - Watch the repository for updates

Roadmap is subject to change based on community feedback and priorities.