Core and the app · crate

kinogaki-shared

Coredylib

The crates Studio and its plugins share, built once as a Rust dylib.

Repository
Core and the app (kinogaki/studio-core)
Folder
studio/core/shared
Source
1 file, 55 lines
Tests
0 files, 0 lines

Also 1 other Rust file, 7 lines.

Depends on This crate Used by A fresh id each time the crate naming it is compiled.kinogaki-build-id Kinogaki Studio's edit contracts: what core and the kernels agree on when a value is selected and changed.kinogaki-edit Kinogaki Studio's standard geometry values.kinogaki-geometry Kinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.kinogaki-render-api Kinogaki Studio's headless plugin API.kinogaki-studio-api Kinogaki Studio's UI layer for plugins.kinogaki-studio-ui-api Kinogaki's viewport packet contract: what a data type hands Studio's viewport to draw, with no GPU or UI API.kinogaki-viewport-api kinogaki-shared Comp as a Studio plugin library (`nodes/comp.dylib`).kinogaki-plugin-comp OpenEXR as a Studio plugin library (`formats/exr.dylib`).kinogaki-plugin-exr FBX as a Studio plugin library (`formats/fbx.dylib`).kinogaki-plugin-fbx glTF and GLB as a Studio plugin library (`formats/gltf.dylib`).kinogaki-plugin-gltf Studio's plugin loader.kinogaki-plugin-host JPEG as a Studio plugin library (`formats/jpeg.dylib`).kinogaki-plugin-jpeg The Layout context as a Studio plugin library (`nodes/layout.dylib`).kinogaki-plugin-layout MaterialX documents as a Studio plugin library (`formats/materialx.dylib`).kinogaki-plugin-materialx The Mesh plugin as a Studio plugin library (`nodes/mesh.dylib`).kinogaki-plugin-mesh The Mesh kernel as a Studio plugin library (`kernels/mesh.dylib`).kinogaki-plugin-mesh-kernel Wavefront OBJ as a Studio plugin library (`formats/obj.dylib`).kinogaki-plugin-obj Pixel as a Studio plugin library (`renders/pixel.dylib`).kinogaki-plugin-pixel PNG as a Studio plugin library (`formats/png.dylib`).kinogaki-plugin-png Spectre as a Studio plugin library (`renders/spectre.dylib`).kinogaki-plugin-spectre USD as a Studio plugin library (`formats/usd.dylib`).kinogaki-plugin-usd Kinogaki Studio: the editor in a window, after the plugins load.kinogaki-studio
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

The crates Studio and its plugins share, built once as a Rust dylib.

Studio links its standard library dynamically (-C prefer-dynamic, .cargo/config.toml) and links this library, so the process holds one copy of the standard library, the SDK (kinogaki-studio-api), its standard geometry values (kinogaki-geometry), its edit contracts (kinogaki-edit) and its UI layer (kinogaki-studio-ui-api, which plugins' contexts draw through), the render interface (kinogaki-render-api), the viewport packet contract (kinogaki-viewport-api) and wgpu, and each plugin links the same copies: values cross as plain Rust types, statics are shared and TypeIds agree. Studio's crates name these crates directly as usual; the compiler takes them from here because this library holds them.

Plugins are built against exactly this build (the kit), and Studio refuses any built against another: BUILD names this build, each plugin records it when it is compiled (link!), and Studio's loader compares the plugin's record with the BUILD of the library it runs with before it calls anything in the plugin. Nothing at link time notices a plugin compiled against another build: it loads, then misbehaves (a changed layout read with the old one).

Depends on

CrateRepositoryAsWhat it is
kinogaki-build-idCore and the appnormalA fresh id each time the crate naming it is compiled.
kinogaki-editSDKnormalKinogaki Studio's edit contracts: what core and the kernels agree on when a value is selected and changed.
kinogaki-geometrySDKnormalKinogaki Studio's standard geometry values.
kinogaki-render-apiSDKnormalKinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.
kinogaki-studio-apiSDKnormalKinogaki Studio's headless plugin API.
kinogaki-studio-ui-apiSDKnormalKinogaki Studio's UI layer for plugins.
kinogaki-viewport-apiSDKnormalKinogaki's viewport packet contract: what a data type hands Studio's viewport to draw, with no GPU or UI API.

Third-party

CrateVersionLicenceFrozen inAsAlso used by
dispatch20.3.1Zlib OR Apache-2.0 OR MITvendornormalkinogaki-spectre
log0.4.34MIT OR Apache-2.0lib-ui/vendornormalkinogaki-editor, kinogaki-image-pipeline, kinogaki-scene, kinogaki-ui, kinogaki-ui-shell, kinogaki-ui-wgpu
objc2-core-foundation0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendornormalkinogaki-ui-shell
objc2-core-graphics0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendornormalnone
objc2-foundation0.3.2MITlib-ui/vendornormalkinogaki-dialogs, kinogaki-spectre, kinogaki-ui-shell
objc2-metal0.3.2Zlib OR Apache-2.0 OR MITlib-ui/vendornormalkinogaki-spectre
syn3.0.9MIT OR Apache-2.0lib-ui/vendorbuildnone
thiserror2.0.21MIT OR Apache-2.0lib-ui/vendornormalkinogaki-document, kinogaki-lsystem, kinogaki-network, kinogaki-ui-wgpu
wgpu30.0.1MIT OR Apache-2.0lib-ui/vendornormalkinogaki-color-wgpu, kinogaki-composit-wgpu, kinogaki-editor, kinogaki-render-api, kinogaki-ui-shell, kinogaki-ui-wgpu, kinogaki-viewport-gpu

Used by

CrateRepositoryAsWhat it is
kinogaki-plugin-compCompnormalComp as a Studio plugin library (nodes/comp.dylib).
kinogaki-plugin-exrOpenEXRnormalOpenEXR as a Studio plugin library (formats/exr.dylib).
kinogaki-plugin-fbxFBXnormalFBX as a Studio plugin library (formats/fbx.dylib).
kinogaki-plugin-gltfglTFnormalglTF and GLB as a Studio plugin library (formats/gltf.dylib).
kinogaki-plugin-hostCore and the appnormalStudio's plugin loader.
kinogaki-plugin-jpegJPEGnormalJPEG as a Studio plugin library (formats/jpeg.dylib).
kinogaki-plugin-layoutLayoutnormalThe Layout context as a Studio plugin library (nodes/layout.dylib).
kinogaki-plugin-materialxMaterialXnormalMaterialX documents as a Studio plugin library (formats/materialx.dylib).
kinogaki-plugin-meshMeshnormalThe Mesh plugin as a Studio plugin library (nodes/mesh.dylib).
kinogaki-plugin-mesh-kernelMeshnormalThe Mesh kernel as a Studio plugin library (kernels/mesh.dylib).
kinogaki-plugin-objOBJnormalWavefront OBJ as a Studio plugin library (formats/obj.dylib).
kinogaki-plugin-pixelPixelnormalPixel as a Studio plugin library (renders/pixel.dylib).
kinogaki-plugin-pngPNGnormalPNG as a Studio plugin library (formats/png.dylib).
kinogaki-plugin-spectreSpectrenormalSpectre as a Studio plugin library (renders/spectre.dylib).
kinogaki-plugin-usdUSDnormalUSD as a Studio plugin library (formats/usd.dylib).
kinogaki-studioCore and the appnormalKinogaki Studio: the editor in a window, after the plugins load.

Modules

One file: the crate root.

Public types and traits

At the crate root

Macros link

Re-exported from other crates

From kinogaki_edit (the crate)

From kinogaki_geometry (the crate)

From kinogaki_render_api (the crate)

From kinogaki_studio_api (the crate)

From kinogaki_viewport_api (the crate)

From studio_ui_api (the crate)

From wgpu (the crate)