freya  by marc2332

Cross-platform Rust GUI toolkit

Created 4 years ago
2,818 stars

Top 16.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

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
46
Issues (30d)
17
Star History
47 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.