Terminal framework supporting React, Svelte, LiveView, and HEEx UI patterns.
Raxol is now available as focused, independently releasable packages:
See Package Guide for detailed comparison, migration paths, and installation instructions.
Choose your package based on needs:
# Minimal - Just terminal buffers
{:raxol_core, "~> 2.0"}
# Web integration - Add LiveView support
{:raxol_core, "~> 2.0"},
{:raxol_liveview, "~> 2.0"}
# Extensible apps - Add plugin system
{:raxol_core, "~> 2.0"},
{:raxol_plugin, "~> 2.0"}
# Or use v1.x (full framework)
{:raxol, "~> 2.0"}
Using runtime: false
provides UI components without terminal emulator runtime for:
# Clone and explore
git clone https://github.com/Hydepwns/raxol.git
cd raxol
mix deps.get
# Run quality checks
mix raxol.check
# Run tests
TMPDIR=/tmp SKIP_TERMBOX2_TESTS=true MIX_ENV=test mix test
# Generate type specs
mix raxol.gen.specs lib --recursive
use Raxol.UI, framework: :react # Familiar React patterns
use Raxol.UI, framework: :svelte # Reactive with compile-time optimization
use Raxol.UI, framework: :liveview # Phoenix LiveView patterns
use Raxol.UI, framework: :heex # Phoenix templates
use Raxol.UI, framework: :raw # Direct terminal control
defmodule MyApp do
use Raxol.Component
def render(assigns) do
~H"""
<Box padding={2}>
<Text color="green" bold>Hello, Raxol!</Text>
<Button on_click={@on_click}>Click me!</Button>
</Box>
"""
end
end
# Default configuration
emulator = Emulator.new(80, 24)
# With GenServers for concurrent operations
emulator = Emulator.new(80, 24, use_genservers: true)
# Minimal configuration
emulator = Emulator.new(80, 24, enable_history: false, alternate_buffer: false)
When importing Raxol with runtime: false
, you get access to:
This makes Raxol perfect as a lightweight UI component library for web applications or other non-terminal use cases.
Metric | Raxol | Alacritty | Kitty | iTerm2 | WezTerm |
---|---|---|---|---|---|
Parser Speed | 3.3μs/op | ~5μs/op | ~4μs/op | ~15μs/op | ~6μs/op |
Memory Usage | 2.8MB | ~15MB | ~25MB | ~50MB | ~20MB |
Startup Time | <10ms | ~50ms | ~40ms | ~100ms | ~60ms |
Test Suite | 793 tests | ~800 tests | ~600 tests | ~500 tests | ~700 tests |
Development version available in editors/vscode/
. To install:
cd editors/vscode
npm install
npm run compile
code --install-extension .
Features: syntax highlighting, IntelliSense, component snippets, live preview
Use cases: terminal IDEs, DevOps tools, system monitoring, database clients, chat applications, games.
MIT License - see LICENSE.md