freya  by marc2332

Cross-platform Rust GUI toolkit

Created 3 years ago
2,662 stars

Top 17.3% on SourcePulse

GitHubView on GitHub
Project Summary

<2-3 sentences summarising what the project addresses and solves, the target audience, and the benefit.> Freya is a cross-platform, native, declarative GUI library for Rust, powered by Skia. It enables developers to build desktop applications with a component-based architecture and reactive state management, offering a modern approach to Rust GUI development.

How It Works

Freya employs a declarative UI paradigm where components automatically re-render based on state changes. It leverages Skia for cross-platform rendering and features a component model for reusable UI elements with internal or shared state. The library supports smooth animations and advanced features like rich text editing.

Quick Start & Requirements

  • Installation: Add freya to Cargo.toml. For the main branch: freya = { git = "https://github.com/marc2332/freya", branch = "main" }. For release candidates: freya = "0.4.0-rc.17".
  • Prerequisites: Rust toolchain.
  • Example: Run cargo run --example counter.
  • Notes: The main branch is under active rewrite; consult documentation for stable releases. Windows users with windows-gnu may face compile issues.
  • Resources: Stable Documentation, Discord.

Highlighted Details

  • Core: Declarative UI, component model with state management (local/shared), smooth animations.
  • Feature-Gated Modules:
    • code-editor: Rich text editing, code editor with syntax highlighting.
    • router: Routing and navigation.
    • radio: Global state management via channels.
    • plotters: Plotting and charts.
    • i18n: Internationalization with Fluent.
    • material-design: Material Design components.
    • webview: WebView integration.
    • terminal: Terminal emulation with PTY support.
    • devtools: Developer tools for component tree inspection.
  • Icons: Supports Lucide icons.
  • Testing: Headless testing via freya-testing.

Maintenance & Community

  • Activity: Active development with significant contributions from named individuals and community members.
  • Community: Discord server available.
  • Support: Developer accepts GitHub Sponsors.
  • AI Tooling: Claude Code skill available.

Licensing & Compatibility

  • License: MIT License.
  • Compatibility: Permissive MIT license suitable for commercial and closed-source integration.

Limitations & Caveats

The main branch is in active rewrite, diverging from stable releases. Potential compile issues exist on Windows with the windows-gnu toolchain. Many advanced features require explicit Cargo feature flags to be enabled.

Health Check
Last Commit

18 hours ago

Responsiveness

Inactive

Pull Requests (30d)
132
Issues (30d)
22
Star History
71 stars in the last 30 days

Explore Similar Projects

Starred by Georgios Konstantopoulos Georgios Konstantopoulos(CTO, General Partner at Paradigm), Jared Palmer Jared Palmer(SVP at GitHub; Founder of Turborepo; Author of Formik, TSDX), and
2 more.

Valdi by Snapchat

0.1%
16k
Build native cross-platform UIs with TypeScript
Created 5 months ago
Updated 1 day ago
Feedback? Help us improve.