mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-02 22:54:36 +00:00
Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.
cppdeclarative-uidesktopembedded-devicesguijavascriptlanguagelsp-servernativerustrust-langtoolkituiuser-interfacewasmwebassemblywidgets
![]() The following scenario would fail compiling to C++ because we failed to determine the return type of the conditional expression: Test := Rectangle { property<bool> condition; property<color> extra_color; color: condition ? root.extra_color : 4289374890; } The type of the true branch would be color and the false branch would be a float. Since they "disagree", ty() on the expression would return Type::Invalid. This was temporarily worked around in the C++ generator by always returning the type of the true branch, but that's wrong. Instead this patch changes maybe_convert_to to apply the Cast expression to the individual branches, placing the cast only to the numberic literal and correcting the return value of ty() on the conditional expression. |
||
---|---|---|
.cargo | ||
.github/workflows | ||
api | ||
examples | ||
helper_crates | ||
sixtyfps_compiler | ||
sixtyfps_runtime | ||
tests | ||
tools | ||
xtask | ||
.clang-format | ||
.gitignore | ||
Cargo.toml | ||
README.md | ||
rustfmt.toml |
SixtyFPS
This is the monolithic repository of the SixtyFPS project.
What is SixtyFPS
It is a GUI engine, with libraries for different languages. The aim of the project is to be
- Lightweight: We aim to provide a runtime that fits in a few MB. Minimize the RAM usage, and also be blazing fast.
- Straightforward: We want to optimize as well for programmer and designer productivity. Making it an enjoyable experience to work with. We claim to use well thought idiomatic API for each target language. Provide well written documentation. And use of modern tools.
- Native: We support many platforms. From embedded devices, to desktop, including mobile and web. One should feel at home on each platform. Both the user and the developer. The appearance and look and feel should match was is expected of an application build for this platform.
<insert a few screenshots here>
SixtyFps.cpp
Modern C++ Library for GUI
SixtyFps-rs
Rust GUI library
SixtyFps-js
NodeJS bindings
The .60 DSL
HelloWorld = Window {
TextLabel { text: "Hello, world" }
}
The compiler
The runtime library
Examples / Demo
Todo
Contributions
Contributions are welcome. To contribute, please see CONTRIBUTING.md. Contributions are done under a CLA.
License
The software is provided under a double license scheme
- GNU GPLv3: Open source license ideal for free software.
- Commercial SixtyFps license: more details to come.