Skip to content

ak4-sh/rahu

Repository files navigation

Rahu

A fast Python language server implemented in Go

Rahu provides IDE features for Python through the Language Server Protocol.

Demo

Features

  • Arena-backed AST with stable node IDs for efficient memory usage
  • Parallel workspace indexing with LRU caching
  • Typeshed integration for accurate Python standard library types
  • Support for Python 3.10 through 3.14
  • Full LSP feature set: completion, hover, go-to-definition, rename, diagnostics, semantic tokens
  • Embedded typeshed stubs require no external Python dependencies

Quick Start

# Build from source
git clone https://github.com/yourusername/rahu.git
cd rahu
go build ./...

# Run tests
go test ./...

# Start LSP server
go run ./cmd/lsp

Then configure your editor to use rahu.

Documentation

What's Different?

Rahu vs Pyright/Pylance:

  • Native Go binary with no Node.js dependency
  • Embedded typeshed requires no setup
  • Focus on IDE speed over strict type checking

Rahu vs Jedi:

  • Static analysis using typeshed
  • LSP-native design
  • Parallel workspace indexing

Current Limitations

Not yet supported:

  • Lambda expressions
  • Walrus operator (:=)
  • Async/await
  • Match statements
  • Full type checking (we do inference, not enforcement)

See ROADMAP.md for complete list.

Contributing

We welcome contributions. See Contributing Guide.

Good first issues:

  • Parser support for missing Python features
  • Editor setup guides
  • Test coverage improvements
  • Documentation

License

MIT License - see LICENSE

About

A python LSP written in go

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages