diff --git a/README.md b/README.md index 748526dc4..457448686 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,13 @@ SixtyFPS is still in the early stages of development. APIs can and will change, At the moment, it's possible to create user interfaces from C++, Rust and NodeJS. Those can be compiled/shown on Linux, macOS, Windows and in Web Browsers (using WebAssembly). +## Architecture + +An application is composed of the business logic written in Rust, C++ or JavaScript and the `.60` user interface markup design, which +is compiled to native code. + +![Architecture Overview](resources/architecture.drawio.svg) + ## Documentation SixtyFPS can be used from different frontend languages. Refer to the README of these directories for reference documentation. diff --git a/resources/architecture.drawio.svg b/resources/architecture.drawio.svg new file mode 100644 index 000000000..584895a0d --- /dev/null +++ b/resources/architecture.drawio.svg @@ -0,0 +1,262 @@ + + + + + + + + + +
+
+
+ .60 Design File +
+
+
+
+ + .60 Design File + +
+
+ + + + +
+
+
+ Sixty FPS Compiler +
+
+
+
+ + Sixty FPS Compiler + +
+
+ + + + + + + + + + +
+
+
+ Application +
+ Source Code +
+ (C++/Rust/JavaScript) +
+
+
+
+ + Application... + +
+
+ + + + +
+
+
+ Compiled UI +
+
+
+
+ + Compiled UI + +
+
+ + + + + + + +
+
+
+ UI Elements Tree +
+
+
+
+ + UI Elements Tree + +
+
+ + + + + + + + + +
+
+
+ Properties +
+
+
+
+ + Properties + +
+
+ + + + +
+
+
+ Signals +
+
+
+
+ + Signals + +
+
+ + + + +
+
+
+ Models +
+
+
+
+ + Models + +
+
+ + + + +
+
+
+ Sixty FPS Runtime +
+
+
+
+ + Sixty FPS Runtime + +
+
+ + + + + +
+
+
+ Input Events +
+
+
+
+ + Input Events + +
+
+ + + + + +
+
+
+ GPU Rendering +
+
+
+
+ + GPU Rendering + +
+
+ + + +
+
+
+ Output Screen +
+
+
+
+ + Output Screen + +
+
+ + + + + + + + +
+
+
+ Native +
+ Code +
+
+
+
+ + Native... + +
+
+ +
+ + + + + Viewer does not support full SVG 1.1 + + + +
\ No newline at end of file