+
Skip to content

infiniteHQ/Cherry

Repository files navigation

Code Quality Discord Server Linux Build

Latest Release Website

What is Cherry ?

Cherry is a modern, minimalist framework for building cross-platform application interfaces in C++ (with support for other languages coming soon).
It avoids heavy web technologies and bloated solutions, focusing instead on being simple yet complete, powered by ImGui, Vulkan, and SDL.
Whether you’re a beginner or an experienced developer, Cherry makes it easy to create real, efficient, and professional interfaces.

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.

All Features

  • 🧰 80+ Components, easy and ready to use
  • 🎨 20+ Style effects & utilities, including colors, sizes, padding, and layout management
  • 🌈 8 Built-in themes, with full color palettes and properties
  • 🛠️ Unlimited customization: create your own components, style effects, and themes, either through the low-level drawing API for maximum control, or from prefabricated building blocks for faster development
  • 📦 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...

Core engine

  • 🔊 Sound engine
  • 🎨 Themes manager, Dark & Ligth themes
  • 📈 Data handler for windows & components
  • 🌍 Localization & Translation management
  • 🔤 Fonts management
  • 🌐 Network media & Web assets
  • 📦 Assets management
  • 🖼️ Images & textures manager
  • 🗂️ Menubar & Bottombar simple callbacks
  • 💪 Custom window close behaviors
  • 🗄️ Advanced Docking
  • 🖼️ 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

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 :)

Getting started

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. If you encounter any issues, feel free to ask your question or reach out to us on Discord!

Compatibility

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...)

Examples & Preview

Cherry is already used in real-world projects, such as:

Note

More examples and previews will be uploaded soon.

Special thanks

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载