Architecture

Third-party crates

The build of Studio and its plugins uses 67 third-party crates, 21 of them directly from our own crates. Every one is frozen as source in the tree, so nothing resolves from crates.io. "Pulls in" counts the third-party crates each brings into the build (and our own crates under crates.io names among them), and "Lines" the Rust lines of it and the third-party crates it pulls in together.

CrateVersionLicenceFrozen inWho uses itWhyPulls inLines
arboard3.7.0MIT OR Apache-2.0lib-ui/vendorused by kinogaki-ui-shellthe text clipboard on three OSes8301,251
bitflags1.3.2MIT/Apache-2.0lib-ui/vendorpulled in by core-graphics, core-graphics-typesthrough the crates that pull it in01,743
bitflags2.13.2MIT OR Apache-2.0lib-ui/vendorused by kinogaki-ui; pulled in by dispatch2, harfrust, naga, objc2-app-kit, objc2-app-kit, objc2-core-foundation, objc2-core-graphics, objc2-foundation, objc2-foundation, objc2-metal, objc2-quartz-core, wgpu, wgpu-core, wgpu-hal, wgpu-types, winit06,018
blake31.8.7CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exceptionlib-ui/vendorused by kinogaki-core-package, kinogaki-geometry, kinogaki-geometry-view, kinogaki-network, kinogaki-scenecollision-resistant cache keys and topology fingerprints5 +3 ours157,023
block20.5.1MITlib-ui/vendorpulled in by objc2-foundation, winitAppKit bindings for file panels and the application menu328,126
block20.6.2MITlib-ui/vendorused by kinogaki-dialogs, kinogaki-spectre; pulled in by dispatch2, objc2-app-kit, objc2-metal, wgpu-halAppKit bindings for file panels and the application menu232,839
bytemuck1.25.2Zlib OR Apache-2.0 OR MITlib-ui/vendorused by kinogaki-composit-wgpu, kinogaki-geometry, kinogaki-geometry-view, kinogaki-image-pipeline, kinogaki-math, kinogaki-pixel, kinogaki-ui, kinogaki-ui-wgpu, kinogaki-viewport-api, kinogaki-viewport-core, kinogaki-viewport-gpu; pulled in by font-types, harfrust, read-fonts, skrifa, wgpu, wgpu-core, wgpu-hal, wgpu-typessafe casts of plain records to bytes for GPU buffers; replacing it needs unsafe code568,324
bytemuck_derive (proc macro)1.12.1Zlib OR Apache-2.0 OR MITlib-ui/vendorpulled in by bytemuckthrough the crates that pull it in464,162
cc1.8.0MIT OR Apache-2.0lib-ui/vendorpulled in by blake3through the crates that pull it in1 +1 ours12,439
cfg_aliases0.2.2MITlib-ui/vendorpulled in by naga, wgpu, wgpu-core, wgpu-hal, winitthrough the crates that pull it in0379
constant_time_eq0.4.2CC0-1.0 OR MIT-0 OR Apache-2.0lib-ui/vendorpulled in by blake3through the crates that pull it in01,407
core-foundation0.9.4MIT OR Apache-2.0lib-ui/vendorpulled in by core-graphics, core-graphics-types, winitthrough the crates that pull it in2143,216
core-foundation-sys0.8.7MIT OR Apache-2.0lib-ui/vendorpulled in by core-foundationthrough the crates that pull it in05,610
core-graphics0.23.2MIT OR Apache-2.0lib-ui/vendorpulled in by winitthrough the crates that pull it in12211,552
core-graphics-types0.1.3MIT OR Apache-2.0lib-ui/vendorpulled in by core-graphicsthrough the crates that pull it in4145,201
cpufeatures0.3.1MIT OR Apache-2.0lib-ui/vendorpulled in by blake3through the crates that pull it in1134,325
cursor-icon1.2.0MIT OR Apache-2.0 OR Zliblib-ui/vendorpulled in by winitthrough the crates that pull it in0460
dispatch0.2.0MITlib-ui/vendorpulled in by objc2-foundationthrough the crates that pull it in01,190
dispatch20.3.1Zlib OR Apache-2.0 OR MITvendorused by kinogaki-shared, kinogaki-spectre; pulled in by objc2-metal445,751
dpi0.1.2Apache-2.0 AND MITlib-ui/vendorpulled in by winitthrough the crates that pull it in01,399
equivalent1.0.3Apache-2.0 OR MITlib-ui/vendorpulled in by indexmapthrough the crates that pull it in0119
find-msvc-tools0.1.14MIT OR Apache-2.0lib-ui/vendorpulled in by ccthrough the crates that pull it in02,749
font-types0.12.6MIT OR Apache-2.0lib-ui/vendorused by kinogaki-ui; pulled in by read-fontsOpenType parsing, outlines, hinting and shaping672,025
foreign-types0.5.0MIT/Apache-2.0lib-ui/vendorpulled in by core-graphicsthrough the crates that pull it in662,551
foreign-types-macros (proc macro)0.2.4MIT/Apache-2.0lib-ui/vendorpulled in by foreign-typesthrough the crates that pull it in462,209
foreign-types-shared0.3.1MIT/Apache-2.0lib-ui/vendorpulled in by foreign-typesthrough the crates that pull it in092
harfrust0.12.0MITlib-ui/vendorused by kinogaki-uiOpenType parsing, outlines, hinting and shaping9 +2 ours215,748
hashbrown0.17.1MIT OR Apache-2.0lib-ui/vendorpulled in by indexmap, naga, naga-types, wgpu, wgpu-core, wgpu-halkept frozen: map APIs too risky to rewrite0 +1 ours23,720
indexmap2.14.2Apache-2.0 OR MITlib-ui/vendorpulled in by naga, naga-types, wgpu-corekept frozen: map APIs too risky to rewrite2 +1 ours37,515
libc0.2.191MIT OR Apache-2.0lib-ui/vendorpulled in by core-foundation, core-graphics, core-graphics-types, cpufeaturesthrough the crates that pull it in0133,736
libloading0.8.9ISClib-ui/vendorpulled in by wgpu-halthrough the crates that pull it in0 +1 ours2,388
log0.4.34MIT OR Apache-2.0lib-ui/vendorused by kinogaki-editor, kinogaki-image-pipeline, kinogaki-scene, kinogaki-shared, kinogaki-ui, kinogaki-ui-shell, kinogaki-ui-wgpu; pulled in by naga, wgpu, wgpu-core, wgpu-hal, wgpu-types05,754
naga30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by wgpu-core, wgpu-hal, wgpu-naga-bridgeGPU abstraction over Metal, Vulkan and DX12; shader translation13 +10 ours234,298
naga-types30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by naga, wgpu-core, wgpu-hal, wgpu-typesthrough the crates that pull it in9 +2 ours103,112
objc-sys0.3.5MITlib-ui/vendorpulled in by objc2through the crates that pull it in01,820
objc20.5.3MITlib-ui/vendorpulled in by block2, objc2-app-kit, objc2-foundation, winitAppKit bindings for file panels and the application menu225,882
objc20.6.5MITlib-ui/vendorused by kinogaki-dialogs, kinogaki-editor, kinogaki-spectre, kinogaki-ui-shell; pulled in by arboard, block2, dispatch2, objc2-app-kit, objc2-core-foundation, objc2-core-graphics, objc2-foundation, objc2-metal, objc2-quartz-core, raw-window-metal, wgpu-halAppKit bindings for file panels and the application menu129,698
objc2-app-kit0.2.2MITlib-ui/vendorpulled in by winitAppKit bindings for file panels and the application menu7177,802
objc2-app-kit0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendorused by kinogaki-dialogs, kinogaki-editor, kinogaki-ui-shell; pulled in by arboardAppKit bindings for file panels and the application menu7297,134
objc2-core-foundation0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendorused by kinogaki-shared, kinogaki-ui-shell; pulled in by objc2-core-graphics, objc2-foundation, objc2-metal, objc2-quartz-core, raw-window-metal, wgpu-hal376,363
objc2-core-graphics0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendorused by kinogaki-shared; pulled in by objc2-app-kit, objc2-quartz-core, wgpu-hal499,029
objc2-encode4.1.0MITlib-ui/vendorpulled in by objc2, objc2through the crates that pull it in02,437
objc2-foundation0.2.2MITlib-ui/vendorpulled in by objc2-app-kit, winitAppKit bindings for file panels and the application menu694,826
objc2-foundation0.3.2MITlib-ui/vendorused by kinogaki-dialogs, kinogaki-shared, kinogaki-spectre, kinogaki-ui-shell; pulled in by arboard, objc2-app-kit, objc2-metal, objc2-quartz-core, raw-window-metal, wgpu-halAppKit bindings for file panels and the application menu4154,803
objc2-metal0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendorused by kinogaki-shared, kinogaki-spectre; pulled in by objc2-quartz-core, wgpu-halMetal is an Objective-C API; hand-written bindings would be high-risk FFI. The versions wgpu-hal already locks7205,918
objc2-quartz-core0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendorpulled in by raw-window-metal, wgpu-halthrough the crates that pull it in9235,693
pin-project-lite0.2.17Apache-2.0 OR MITlib-ui/vendorpulled in by tracingthrough the crates that pull it in01,770
proc-macro21.0.107MIT OR Apache-2.0lib-ui/vendorpulled in by bytemuck_derive, foreign-types-macros, quote, syn, thiserror-implthrough the crates that pull it in17,272
quote1.0.47MIT OR Apache-2.0lib-ui/vendorpulled in by bytemuck_derive, foreign-types-macros, syn, thiserror-implthrough the crates that pull it in210,006
raw-window-handle0.6.2MIT OR Apache-2.0 OR Zliblib-ui/vendorused by kinogaki-ui-shell, kinogaki-ui-wgpu; pulled in by wgpu, wgpu-core, wgpu-hal, wgpu-types, winitwindows, input and event loops on three OSes01,984
raw-window-metal1.1.0MIT OR Apache-2.0lib-ui/vendorpulled in by wgpu-halthrough the crates that pull it in10236,424
read-fonts0.41.0MIT OR Apache-2.0lib-ui/vendorpulled in by harfrust, skrifaOpenType parsing, outlines, hinting and shaping7 +1 ours175,401
skrifa0.44.0MIT OR Apache-2.0lib-ui/vendorused by kinogaki-uiOpenType parsing, outlines, hinting and shaping8 +1 ours213,382
smol_str0.2.2MIT OR Apache-2.0lib-ui/vendorpulled in by winitthrough the crates that pull it in0867
syn3.0.9MIT OR Apache-2.0lib-ui/vendorused by kinogaki-shared; pulled in by bytemuck_derive, foreign-types-macros, thiserror-impl361,793
thiserror2.0.21MIT OR Apache-2.0lib-ui/vendorused by kinogaki-document, kinogaki-lsystem, kinogaki-network, kinogaki-shared, kinogaki-ui-wgpu; pulled in by naga, naga-types, wgpu-core, wgpu-halerror derives; wgpu and naga use it anyway564,955
thiserror-impl (proc macro)2.0.21MIT OR Apache-2.0lib-ui/vendorpulled in by thiserrorthrough the crates that pull it in464,261
tracing0.1.44MITlib-ui/vendorpulled in by winitthrough the crates that pull it in215,082
tracing-core0.1.36MITlib-ui/vendorpulled in by tracingthrough the crates that pull it in06,229
unicode-ident1.0.27(MIT OR Apache-2.0) AND Unicode-3.0lib-ui/vendorpulled in by naga, proc-macro2, synthrough the crates that pull it in0976
wgpu30.0.1MIT OR Apache-2.0lib-ui/vendorused by kinogaki-color-wgpu, kinogaki-composit-wgpu, kinogaki-editor, kinogaki-render-api, kinogaki-shared, kinogaki-ui-shell, kinogaki-ui-wgpu, kinogaki-viewport-gpuGPU abstraction over Metal, Vulkan and DX12; shader translation33 +16 ours635,906
wgpu-core30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by wgpuGPU abstraction over Metal, Vulkan and DX12; shader translation32 +16 ours595,959
wgpu-core-deps-apple30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by wgpu-corethrough the crates that pull it in31 +14 ours544,256
wgpu-hal30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by wgpu, wgpu-core, wgpu-core-deps-appleGPU abstraction over Metal, Vulkan and DX12; shader translation30 +14 ours544,253
wgpu-naga-bridge30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by wgpu-core, wgpu-halthrough the crates that pull it in18 +11 ours258,718
wgpu-types30.0.1MIT OR Apache-2.0lib-ui/vendorpulled in by wgpu, wgpu-core, wgpu-hal, wgpu-naga-bridgeGPU abstraction over Metal, Vulkan and DX12; shader translation15 +3 ours138,978
winit0.30.13Apache-2.0lib-ui/vendorused by kinogaki-ui-shellwindows, input and event loops on three OSes29467,041

Ours under crates.io names

Small crates that the frozen crates call, written in libs/lib-misc-utils under their crates.io names (each version the upstream one plus +kinogaki), so those crates build unedited.

CrateVersionLicenceUsed byLines
arrayvec0.7.8+kinogakiMIT OR Apache-2.0blake3, naga, wgpu, wgpu-core, wgpu-hal839
bit-set0.10.0+kinogakiMIT OR Apache-2.0naga, wgpu-core265
bit-vec0.9.1+kinogakiMIT OR Apache-2.0wgpu-core525
cfg-if1.0.5+kinogakiMIT OR Apache-2.0blake3, libloading, naga, wgpu, wgpu-hal37
codespan-reporting0.13.1+kinogakiMIT OR Apache-2.0naga623
document-features0.2.12+kinogakiMIT OR Apache-2.0wgpu, wgpu-core14
foldhash0.2.0+kinogakiMIT OR Apache-2.0hashbrown144
half2.7.1+kinogakiMIT OR Apache-2.0naga1,039
libm0.2.16+kinogakiMIT OR Apache-2.0naga61
num-traits0.2.19+kinogakiMIT OR Apache-2.0naga1,179
once_cell1.21.4+kinogakiMIT OR Apache-2.0naga, read-fonts, wgpu-core158
parking_lot0.12.5+kinogakiMIT OR Apache-2.0wgpu, wgpu-core, wgpu-hal723
profiling1.0.18+kinogakiMIT OR Apache-2.0wgpu, wgpu-core, wgpu-hal25
rustc-hash1.1.0+kinogakiMIT OR Apache-2.0naga, naga-types, wgpu-core94
shlex2.0.1+kinogakiMIT OR Apache-2.0cc99
smallvec1.16.3+kinogakiMIT OR Apache-2.0harfrust, wgpu, wgpu-core, wgpu-hal719
static_assertions1.1.0+kinogakiMIT OR Apache-2.0wgpu, wgpu-hal, wgpu-types39

Only in a library's or the SDK's own workspace

Built alone, these workspaces resolve further crates the build of Studio leaves out: the SDK, cloned by itself, takes its dependencies from crates.io at exact versions (inside the tree its patch table gives it the frozen copies), and lib-svg's tests compare with resvg.

libs/lib-svg: adler2 2.0.1, arrayref 0.3.9, autocfg 1.5.1, base64 0.22.1, crc32fast 1.5.2, data-url 0.3.2, euclid 0.22.14, fdeflate 0.3.7, flate2 1.1.10, float-cmp 0.9.0, font-types 0.12.7, imagesize 0.13.0, jpeg-decoder 0.3.2, kurbo 0.11.3, miniz_oxide 0.8.9, miniz_oxide 0.9.1, pico-args 0.5.0, png 0.17.16, resvg 0.45.1, rgb 0.8.53, roxmltree 0.20.0, simd-adler32 0.3.10, simplecss 0.2.2, siphasher 1.0.4, strict-num 0.1.1, svgtypes 0.15.3, tiny-skia 0.11.4, tiny-skia-path 0.11.4, usvg 0.45.1, xmlwriter 0.1.0, zlib-rs 0.6.8

sdk: allocator-api2 0.2.21, android_system_properties 0.1.6, ash 0.38.0+1.3.281, autocfg 1.5.1, bumpalo 3.20.3, cc 1.10.0, crunchy 0.2.4, dlib 0.5.3, find-msvc-tools 0.1.15, futures-core 0.3.34, futures-task 0.3.34, futures-util 0.3.34, gl_generator 0.14.0, glow 0.17.0, glutin_wgl_sys 0.6.1, gpu-allocator 0.28.0, hashbrown 0.16.1, jni-sys 0.3.1, jni-sys 0.4.1, jni-sys-macros 0.4.1, js-sys 0.3.106, khronos-egl 6.0.0, khronos_api 3.1.0, litrs 1.0.1, lock_api 0.4.14, ndk-sys 0.6.0+11769913, objc2-io-surface 0.3.2, ordered-float 5.5.1, parking_lot_core 0.9.12, pkg-config 0.3.34, portable-atomic 1.15.0, portable-atomic-util 0.2.8, presser 0.3.1, range-alloc 0.1.5, redox_syscall 0.5.18, renderdoc-sys 1.1.0, rustversion 1.0.23, scopeguard 1.2.0, serde 1.0.229, serde_core 1.0.229, serde_derive 1.0.229, slab 0.4.12, slotmap 1.1.1, spirv 0.4.0+sdk-1.4.341.0, syn 2.0.119, termcolor 1.4.1, tokio 1.54.1, unicode-width 0.2.3, version_check 0.9.5, wasm-bindgen 0.2.129, wasm-bindgen-futures 0.4.79, wasm-bindgen-macro 0.2.129, wasm-bindgen-macro-support 0.2.129, wasm-bindgen-shared 0.2.129, wayland-sys 0.31.11, web-sys 0.3.106, wgpu-core-deps-emscripten 30.0.1, wgpu-core-deps-windows-linux-android 30.0.1, winapi-util 0.1.11, windows 0.62.2, windows-collections 0.3.2, windows-core 0.62.2, windows-future 0.3.2, windows-implement 0.60.2, windows-interface 0.59.3, windows-link 0.2.1, windows-numerics 0.3.1, windows-result 0.4.1, windows-strings 0.5.1, windows-sys 0.61.2, windows-threading 0.2.1, xml-rs 0.8.29, zerocopy 0.8.63, zerocopy-derive 0.8.63