Seregon/StratoSDK

StratoSDK is a framework with a declarative approach similar to Flutter/React, written and designed entirely for Rust.

Rust/27.3 KB/No license
Cargo.toml
StratoSDK / Cargo.toml
1[workspace]
2members = [
3 "examples/hello_world",
4 "examples/counter",
5 "examples/calculator",
6 "examples/custom_init",
7 "examples/complex_demo",
8 "examples/advanced_renderer",
9 "examples/comprehensive_test",
10 "examples/modern_dashboard",
11 "examples/control_gallery",
12 "crates/strato-core",
13 "crates/strato-renderer",
14 "crates/strato-widgets",
15 "crates/strato-platform",
16 "crates/strato-macros",
17 "crates/strato-ui-core",
18 "crates/strato-ui-renderer",
19 "examples/animated_showcase",
20 "examples/macro_showcase",
21 "examples/taffy_demo",
22]
23resolver = "2"
24
25[package]
26name = "strato-sdk"
27version.workspace = true
28edition.workspace = true
29authors.workspace = true
30license.workspace = true
31repository.workspace = true
32homepage.workspace = true
33documentation.workspace = true
34readme.workspace = true
35keywords.workspace = true
36categories.workspace = true
37description = "A lightweight, secure, and reactive UI framework"
38
39[dependencies]
40strato-core = { workspace = true }
41strato-widgets = { workspace = true }
42strato-platform = { workspace = true }
43
44[workspace.package]
45version = "0.1.0"
46edition = "2021"
47authors = ["StratoSDK Team"]
48license = "MIT OR Apache-2.0"
49repository = "https://github.com/stratosdk/strato-sdk"
50homepage = "https://stratosdk.dev"
51documentation = "https://docs.stratosdk.dev"
52readme = "README.md"
53keywords = ["gui", "ui", "graphics", "wgpu", "cross-platform"]
54categories = ["gui", "graphics", "wasm"]
55
56[workspace.dependencies]
57# Internal crates
58strato-core = { path = "crates/strato-core", version = "0.1.0" }
59strato-renderer = { path = "crates/strato-renderer", version = "0.1.0" }
60strato-widgets = { path = "crates/strato-widgets", version = "0.1.0" }
61strato-platform = { path = "crates/strato-platform", version = "0.1.0" }
62strato-macros = { path = "crates/strato-macros", version = "0.1.0" }
63
64# Core dependencies
65tokio = { version = "1.40", features = ["rt-multi-thread", "macros", "sync", "time"] }
66futures = "0.3"
67futures-lite = "1.13"
68futures-util = { version = "0.3", default-features = false }
69thiserror = "1.0"
70anyhow = "1.0"
71reqwest = { version = "0.12", features = ["blocking", "rustls-tls"] }
72async-broadcast = "0.7.2"
73async-channel = "2.3.1"
74async-fs = "2.1.2"
75async-io = "2.4.0"
76async-task = "4.2.0"
77bytes = { version = "1.11.1", features = ["serde"] }
78cfg-if = "1.0"
79cfg_aliases = "0.2.1"
80concat-idents = "1.1.4"
81ctrlc = "3.4.7"
82instant = { version = "0.1.12", features = ["wasm-bindgen"] }
83log = { version = "0.4", features = ["serde", "std"] }
84lazy_static = "1.4"
85libc = "0.2"
86 
87# State Management
88arc-swap = "1.7"
89dashmap = "6.0"
90parking_lot = "0.12"
91slotmap = "1.0"
92smallvec = "1.13"
93rustc-hash = "2.1.1"
94 
95# Math and Graphics
96glam = "0.29"
97euclid = "0.22"
98palette = "0.7"
99ordered-float = { version = "3.0.0", features = ["serde"] }
100pathfinder_color = "0.5"
101pathfinder_geometry = "0.5.1"
102 
103# Serialization
104serde = { version = "1.0", features = ["derive"] }
105serde_json = "1.0"
106bincode = "1.3"
107ron = "0.8"
108
109# Renderer
110wgpu = { version = "0.20", features = ["webgl"] }
111lyon = "1.0"
112cosmic-text = "0.12"
113image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp"] }
114bytemuck = { version = "1.16", features = ["derive"] }
115arboard = { version = "3.6.1", default-features = false }
116font-kit = { version = "0.14", default-features = false, features = ["source"] }
117resvg = "0.47.0"
118 
119# Platform
120winit = { version = "0.29", features = ["serde"] }
121raw-window-handle = "0.6"
122block = "0.1.6"
123blocking = "1.6.2"
124chrono = { version = "0.4", features = ["serde"] }
125cocoa = "=0.26.0"
126core-foundation = "0.9.4"
127core-graphics = "0.23.2"
128core-text = "20.1.0"
129nix = { version = "0.26.4", default-features = false, features = ["signal"] }
130objc = "0.2"
131windows = { version = "0.62.2", features = ["Win32", "Win32_System", "Win32_System_Com"] }
132windows-core = "0.62.2"
133winreg = "0.55.0"
134x11rb = "0.13.0"
135zbus = "5.9.0"
136 
137# Web
138wasm-bindgen = "0.2"
139web-sys = "0.3"
140js-sys = "0.3"
141wasm-bindgen-futures = "0.4"
142console_error_panic_hook = "0.1"
143gloo = { version = "0.11.0", default-features = false, features = ["events", "futures", "utils"] }
144 
145# Development
146tracing = "0.1"
147tracing-subscriber = { version = "0.3", features = ["env-filter"] }
148tracing-wasm = "0.2"
149criterion = { version = "0.5", features = ["html_reports"] }
150pretty_assertions = "1.4"
151derivative = "2.2.0"
152derive_more = "0.99.17"
153dirs = "6.0.0"
154enum-iterator = "1.1.3"
155env_logger = "0.10.0"
156float-cmp = "0.9.0"
157itertools = "0.14.0"
158minimp4 = "0.1.2"
159num-traits = "0.2"
160openh264 = "0.8"
161rand = "0.8.2"
162rangemap = "1.3.0"
163rust-embed = { version = "8.7.0", features = ["include-exclude"] }
164similar = { version = "2.7", features = ["inline"] }
165simplelog = "0.12.2"
166strum = "0.27"
167strum_macros = "0.27"
168tempfile = "3.8.0"
169vec1 = { version = "1.8.0", features = ["serde"] }
170version-compare = "0.1"
171
172# Procedural macros
173syn = { version = "2.0", features = ["full", "extra-traits"] }
174quote = "1.0"
175proc-macro2 = "1.0"
176
177[profile.release]
178opt-level = 3
179lto = "thin"
180codegen-units = 16
181strip = true
182panic = "abort"
183incremental = true
184
185[profile.release-with-debug]
186inherits = "release"
187strip = false
188debug = true
189
190[profile.wasm]
191inherits = "release"
192opt-level = "z"
193lto = "fat"
194
195[profile.dev]
196opt-level = 1
197
198[profile.bench]
199inherits = "release"
200debug = true
201