Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.
Find a file
2020-08-13 18:43:34 +02:00
.cargo Fix rebuild issues, part 10523 2020-06-09 13:08:59 +02:00
.github/workflows Provide more detailed commit messages in the pushes to the www repo 2020-08-06 13:48:07 +02:00
.vscode Added a basic logo 2020-08-11 09:03:56 +02:00
api Implement releasing of graphics resources in C++ via the component destructor 2020-08-13 16:35:04 +02:00
docs if statements 2020-08-04 17:36:20 +02:00
examples Minor polish to the printer demo html 2020-08-13 18:43:34 +02:00
helper_crates Add a few Debug impl 2020-08-10 17:25:15 +02:00
resources Add a simple screenshot to the README with a clickable link to the demo 2020-08-13 18:29:11 +02:00
sixtyfps_compiler Implement releasing of graphics resources in C++ via the component destructor 2020-08-13 16:35:04 +02:00
sixtyfps_runtime Closes: Free GL resources when destroying items in the interpreter #12 2020-08-13 17:56:18 +02:00
sixtyfps_widgets Implement minimum/maximum width/height properties 2020-08-12 14:00:51 +02:00
tests Fix acessing repeater variable in a nested repeater, and fix array as property 2020-08-13 15:38:28 +02:00
tools Get rid of abi::datastructures::WindowProperties 2020-08-12 09:44:42 +02:00
vscode_extension Add some draft of a VS extension to highlight .60 files 2020-08-12 19:41:35 +02:00
xtask C++ Only link against the backend library 2020-06-17 18:38:47 +02:00
.clang-format Reformat public header with Qt's clang-format 2020-05-11 15:20:17 +02:00
.gitignore Improve setup experience with VS code 2020-07-22 09:38:02 +02:00
Cargo.toml Remove old test programs 2020-08-11 14:42:19 +02:00
CMakeLists.txt Create a top level CMakeLists.txt 2020-08-04 11:16:50 +02:00
CONTRIBUTING.md Some documentation 2020-06-18 17:16:34 +02:00
README.md Add a simple screenshot to the README with a clickable link to the demo 2020-08-13 18:29:11 +02:00
rustfmt.toml Initial commit laying out the structure 2020-05-04 10:49:58 +02:00

SixtyFPS

This is the monolithic repository of the SixtyFPS project.

What is SixtyFPS

It is a toolkit to efficiently develop fluid graphical user interfaces in different languages. The aim of the project is to be

  • Lightweight: We aim to provide a runtime that fits into a few hundred kilobytes of RAM and requires little processing power.
  • Straightforward: We want programmers and designers to feel productive. It should be an enjoyable experience to design and developer the user interface. We aim to provide APIS that are idiomatic and easy to use for each target language, along with excellent documentation and 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.

Screenshot of the Printer Demo

Documentation

SixtyFPS can be used from different frontend languages. Refer to the README of these direcory for actual user documentation.

The docs folder contains build instructions and internal developer docs.

SixtyFps.cpp

Modern C++ Library for GUI

SixtyFps-rs

Rust GUI library

SixtyFps-js

NodeJS bindings

The .60 DSL

SixtyFPS UI comes with a mark-up language that is specifically designed for user interfaces: It provides a powerful way to describe graphical elements, their placement and the flow of data through the different states. Here's the obligatory "Hello World":

HelloWorld := Window {
    Text {
       text: "Hello, world"
    }
}

Check out the language reference for more details.

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 dual license scheme

  • GNU GPLv3: Open source license ideal for free software.
  • Commercial SixtyFps license: more details to come.