Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
B

brisk

> 前端框架
Open source

Cross-platform C++20 GUI framework featuring MVVM architecture, reactive capabilities, and scalable, accelerated GPU rendering.

357 stars0 likes0 views
WebsiteGitHub

About

Cross-platform C++20 GUI framework featuring MVVM architecture, reactive capabilities, and scalable, accelerated GPU rendering.

Brisk

Brisk is a modern, cross-platform C++ GUI framework designed to build responsive, high-performance applications with flexibility and ease.

Initially developed for a graphics-intensive proprietary project with a complex and dynamic GUI.

[!Note] The Brisk library is currently under active development. Breaking changes may occur, and the documentation might not always be up to date. Contributions are always welcome!

Recommended reading:

➡️ Brisk Design and Feature Overview ⬅️

Documentation on docs.brisklib.com

Our other projects

Key Features

  • Declarative GUI: Enables the creation of complex GUIs in C++ using a flexible declarative syntax.
  • Stateful & Stateless Widgets: Supports both modes, with powerful binding for efficient state management.
  • Stylesheets: Offers declarative styles to easily modify the application's look and feel.
  • Hardware-Accelerated Graphics: Backends include D3D11, D3D12, Vulkan, OpenGL, Metal, and WebGPU.
  • Color Processing: Supports various color spaces and linear color blending for physically accurate rendering.
  • Font support: OpenType support, advanced shaping for non-European languages, ligatures, rich text formatting, SVG fonts, emojis, and rendering for RTL and bidirectional text.
  • Modular Architecture: Core, Graphics, Window, GUI, Network, and Widgets modules for versatile application development.

Code Example

Component example

…

Screenshots

Modules

Core

  • Compression & Basic Cryptography: Provides data compression and basic cryptographic functions, including hashing algorithms.
  • Dynamic Library Loading: Loads and interacts with .dll or .so files dynamically.
  • String Manipulation: Handles UTF-8, UTF-16, and UTF-32, with text manipulation utilities.
  • Stream I/O: Input/output operations for handling data streams.
  • Localization Support: Basic localization and internationalization features for multilingual applications.
  • Logging: Built-in logging framework for application diagnostics.
  • Reflection: Supports reflection.
  • Serialization: Serializes/deserializes data to/from JSON.
  • App-Global Settings: Manages global application settings.
  • Threading: Provides task queues for multi-threaded applications.
  • Binding: Supports value binding, capable of handling multi-threaded environments.

Graphics

  • Color & Colorspaces: Supports working with colors, including various colorspaces.
  • Geometry: Provides 2D geometry types like Rect, Point, Size, and 2D matrices for transformations.
  • Canvas & Path: Supports drawing with paths and Bézier curves.
  • SVG Rasterization: Renders SVG images into raster formats.
  • Image Processing: Supports image encoding, decoding, resizing, and manipulation.
  • Font Handling: Manages fonts, including loading, rendering, caching, and text layout. Supports advanced text shaping (using HarfBuzz) and SVG fonts (emojis).

Window

  • Clipboard: Provides clipboard access for copy/paste functionality.
  • OS Dialogs: Native dialogs for file open/save, folder selection, and message boxes.
  • Display Information: Retrieves and manages display/monitor information from the OS.
  • Buffered rendering : Brisk supports both buffered rendering, which enables partial repaints, and direct rendering to the window backbuffer.

GUI

  • Widgets: Includes a wide variety of widgets with CSS-style flex layout.
  • Style Sheets: Styles your widgets using a stylesheet system that supports property inheritance. Viewport-relative units are supported (vh, vw, vmin, `vmax)
  • Binding Support: Data-binding between UI elements and application data. Supports transforming values using a function on-the-fly and compound values (e.g., sums of other values).
  • Stateful and Stateless Modes: Choose between stateful widgets for persistent state or stateless widgets for easily rebuilding widget subtrees.
  • Drag-and-Drop: Supports drag-and-drop within the GUI, with the option to attach a C++ object to represent the dragged data.

Widgets

  • Widgets: Includes buttons, lists, comboboxes, toggle switches, radio buttons, progress bars, sliders, scroll boxes, checkboxes, popup buttons, tabs, tables, spin boxes, dialogs, and more. All public properties are styleable and bindable.
  • Layouts: Supports CSS flexbox-style layouts.
  • Text Editors: Provides text editing widgets with LTR and RTL text support.
  • WebGPU: Ability to render 3D content to the window using the WebGPU API (backed by Google's Dawn), with full support for composition with the UI.

Requirements ⚙️

  • C++20 Compiler: Brisk requires a C++20-compatible compiler such as MSVC 2022, Clang, XCode, or GCC.
  • Dependency Management: Uses vcpkg to manage dependencies across platforms, simplifying the build process. Alternatively, you can download prebuilt binaries.

Platform Support

Windows macOS Linux
Core Functionality Beta Beta Beta
Graphics Beta Beta Beta
Window System Beta Beta Beta
Widgets Beta Beta Beta
Application Support Alpha Alpha N/A

OS Support

Minimum version
Windows Windows 10, Windows Server 2016
macOS macOS 11 Big Sur
Linux n/a

Graphics Backend Support

Backends
Windows D3D11 and WebGPU (D3D12/Vulkan)
macOS WebGPU (Metal)
Linux WebGPU (OpenGL/Vulkan)

Example Projects

The examples directory contains projects that showcase how to use the Brisk library.

For a minimal example, check out the brisk-helloworld repository.

Example Project Binary Size:

OS Static Build, Release (Full Unicode Support)
Windows x64 10.1 MB (D3D11)
Linux x64 18.2 MB (WebGPU: Vulkan/OpenGL), stripped
macOS x64 16.5 MB (WebGPU: Metal), stripped

These sizes do not include embedded resources (such as fonts).

Development

Brisk is in active development, and we welcome contributions and feedback from the community to improve and expand the toolkit.

The main branch contains the latest features and generally passes all built-in tests ✅. Other branches are reserved for feature development and may be force-pushed.

License

Brisk is licensed under the GPL v2.0 or later. However, for those who wish to use Brisk in proprietary or closed-source applications, a commercial license is also available. For more details on commercial licensing, please contact us at [email protected].

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++cpp20cross-platform-guiguihardware-acceleration

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category前端框架
PricingOpen source

> Related tools

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架