Important: Cherry is part of Infinite's initiative to create free, independent, and ethical technology and computing. Cherry is a library powering many parts of this project, but maintaining libraries like Cherry is a time-consuming and costly process. If you appreciate Cherry, you can support us on our funding page if you can.
Cherry is a modern, minimalist yet comprehensive UI/UX framework for low-level native applications. It provides a complete solution, including backend support, a rendering engine, and UI components. Cherry is built using technologies like ImGui, Vulkan, and SDL, offering developers advanced tools to create efficient and high-performance interfaces.
A presentation video will be appear here
(Top level) Components, UI, Interfaces & Kits
- π§° + 80 Components, easy and ready to use
- π§° + 20 Style effects and utils, like color, sizes, padding, layout managment>
- π§° + 8 themes, including color palette and all properties
- π¦ Many examples and ready to use windows, concepts.
- π¦ Many logics and interaction utils like input detection, key managment, double click, Ctrl+C etc...
- π¦ Complete and simple API with Sound managment, web asset fetching, rendering possibilities, traduction managment etc...
(API) Render engine
- π Sound engine
- π¨ Themes manager, Dark & Ligth themes
- π Data handler for windows & components
- π¬ Localization & Traduction managment
- β Fonts manager
- πΌοΈ Images & textures manager
- ποΈ Menubar & Bottombar simple callbacks
- πͺ Custom window close behaviors
- ποΈ Advanced Docking (WIP)
- πΌοΈ Toasts, Notifications & pop-ups
- π οΈ Behaviros callbacks (closing, moving, etc...)
- ποΈ Windows customisations (size, colors, properties & styles)
Backends
- π οΈ Multi context with contexts cohesion & communication (ImGui/SDL)
- π οΈ Complete image load & show, cache & optimization
- π οΈ Window builder
Planned features for next updates :
- ποΈ Webviews & Website loading
- ποΈ More components with more properties & customizations
- ποΈ Internet images loading & cache managment
Note
This framework is new and still under active development, so some bugs may occur, and content is subject to change. We are also working to improve the overall stability of Cherry, particularly with regard to memory safety and the rendering stack, as well as the graphical libraries used. Thank you for your understanding! Stay tuned :)
Warning
The only dependance you need to compile Cherry is the VulkanSDK installed & ready. Please refer to the https://www.lunarg.com/vulkan-sdk/ website to see how install Vulkan on your system (compatible on Linux & Windows).
πͺ On Microsoft Windows
git clone https://github.com/infiniteHQ/Cherry cd Cherry git submodule update --init --recursive cd examples/hello build.bat .\build\bin\hello.exe
π§ On Linux based distributions
git clone https://github.com/infiniteHQ/Cherry cd Cherry git submodule update --init --recursive cd examples/hello bash build.sh ./build/bin/hello
Congratulations! If everything is working well, you can now start in the Cherry environment. Please follow our documentation (WIP). If you encounter any issues, feel free to ask your question or reach out to us on Discord!
Technology | Windows | Linux | Linux DRM | macOS | iOS | Android | Web |
---|---|---|---|---|---|---|---|
Vulkan | β | β | π§ | π§ | β | β | β |
β
: Fully compatible
π§ : Not fully tested, partially incompatible but planned
β : Not planned, incompatible (for the moment...)
Note
These examples are real-world examples of the use of Cherry. More examples will be uploaded.
![]() Simple window with sidebar |
![]() Toast notification |
![]() Rich menubar |
![]() Project selector with custom widgets |
![]() Item selection & navigation |
![]() Rich windows & Docking |
![]() Multi-windows on single app |
- For all contributors of SDL2
- For all contributors of Vulkan/VulkanSDK
- For all contributors of STB
- For the log library of gabime and contributors (https://github.com/gabime/spdlog)
- For the json library of nlohmann and contributors (https://github.com/nlohmann/json)
- For the amazing immediate mode interface ImGui from Ocornut and contributors (https://github.com/ocornut/imgui)
- For the work of from "Studio Cherno" on Walnut (https://github.com/StudioCherno/Walnut)