Welcome to Freya
Freya is a cross-platform, native, declarative GUI library for Rust 🦀 powered by Skia. Build beautiful, performant desktop applications with a modern component-based architecture that automatically re-renders when state changes. Freya combines the power of Rust’s safety guarantees with Skia’s battle-tested graphics engine to deliver smooth, native experiences on Windows, macOS, and Linux.Quick Start
Build your first counter app in minutes
Installation
Set up your development environment
Components
Explore built-in UI components
Examples
Browse 100+ real-world examples
Why Freya?
Declarative & Reactive
Write UI code that’s easy to understand and maintain. Components automatically update when state changes - no manual DOM manipulation required.Powered by Skia
Leverage the same graphics engine used by Chrome, Android, and Flutter. Get smooth animations, advanced rendering effects, and consistent cross-platform visuals.Rich Feature Set
State Management
Local state with
use_state and global state with freya-radioSmooth Animations
Built-in animation system with easing functions
Routing
Type-safe navigation with freya-router
Text Editing
Rich text editing with cursor management and selection
Code Editor
Full-featured code editor with syntax highlighting
Internationalization
Multi-language support with Fluent
WebView Integration
Embed web content in native apps
Terminal Emulation
Full PTY support for terminal apps
Testing
Headless testing framework included
Key Features
Component System
Freya’s component model lets you create reusable UI elements. Components can hold internal state or subscribe to shared state, and they produce UI as their output.Built-in Components
Freya includes a comprehensive library of ready-to-use components:- Basic: Button, Switch, Slider, Input, Checkbox
- Advanced: VirtualScrollView, Calendar, ColorPicker, Dropdown
- Layout: Containers with flexbox-like positioning
- Media: Image, SVG, GIF support
Smooth Animations
Create fluid transitions for colors, sizes, positions, and more with full control over timing and easing.Developer Experience
- Fast Compile Times: Optimized for quick iteration
- Hot Reload: See changes instantly during development
- DevTools: Inspect component tree in real-time
- Type Safety: Catch errors at compile time with Rust
Community & Support
Discord Community
Join our Discord server for help and discussions
GitHub Repository
Star the repo and contribute to development
API Documentation
Comprehensive API reference on docs.rs
Sponsor the Project
Support ongoing development