Skip to content

infiniteHQ/Cherry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Code Quality Discord Server Linux Build

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.

Summary

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

What you can do ?

βœ… Ready βœ… Ready πŸ§ͺ Experimental ⏳ Planned ⏳ Planned ⏳ Planned ⏳ Planned

Features

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

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

Note

These examples are real-world examples of the use of Cherry. More examples will be uploaded.

Cherry 1

Simple window with sidebar

Cherry 2

Toast notification

Cherry 3

Rich menubar

Cherry 4

Project selector with custom widgets

Cherry 5

Item selection & navigation

Cherry 6

Rich windows & Docking

Cherry 7

Multi-windows on single app

Special thanks