Skip to content

πŸ’ Cherry helps you create modern interfaces that are simple, fast and cross-platform.

License

Notifications You must be signed in to change notification settings

infiniteHQ/Cherry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

415 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Code Quality Discord Server Linux Build Changelog

Latest Release Documentation

What is Cherry ?

Cherry is a modern, minimalist framework for building cross-platform application or cool user interfaces. 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
  • πŸ“— 60+ Drawing effects,
  • 🎨 20+ Style effects & utilities, including colors, sizes, padding, and layout management
  • πŸ“¦ 13+ examples and ready to use windows, concepts to learn quiclky.
  • 🌈 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
  • πŸ“œ Scripting engine with Lua, allowing live scripting, easy UI builds and simplier way of building interfaces !
  • πŸͺ› 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
  • πŸ“œ Scripting engine with lua
  • πŸ“œ Complete drawing API (C++ and Lua)
  • 🎨 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

  •  
  •