From 2a24d1acd6f97a774957274bb410d157efc7fdbc Mon Sep 17 00:00:00 2001 From: ReaperOfVeriod Date: Sun, 25 Oct 2026 06:27:06 +0100 Subject: [PATCH] Initialize VTube Studio plugin repository --- .gitignore | 3 +++ Cargo.lock | 7 +++++++ Cargo.toml | 15 +++++++++++++++ README.md | 32 ++++++++++++++++++++++++++++++-- plugin.toml | 18 ++++++++++++++++++ src/lib.rs | 16 ++++++++++++++++ 6 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 plugin.toml create mode 100644 src/lib.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0a43e52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/target/ +*.wasm +*.trixie-plugin diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..e341d1e --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "trixie-vtube-studio-plugin" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..c3f2038 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "trixie-vtube-studio-plugin" +version = "0.1.0" +edition = "2021" +license = "MIT" +description = "Trixie WebAssembly plugin boundary for VTube Studio integrations" + +[lib] +crate-type = ["cdylib"] + +[profile.release] +opt-level = "z" +lto = true +codegen-units = 1 +panic = "abort" diff --git a/README.md b/README.md index 852411a..2eec226 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,31 @@ -# trixie-vtube-studio-plugin +# Trixie VTube Studio plugin -Trixie WebAssembly plugin for VTube Studio \ No newline at end of file +This repository contains the independently versioned VTube Studio integration +for Trixie. It produces a WebAssembly plugin package consumed by the Trixie +server; it is not part of the Trixie server source tree. + +## Boundary + +The plugin may only use capabilities explicitly exposed by the versioned +Trixie plugin host API. It must not open arbitrary network connections, access +the filesystem, execute processes, read secrets, or evaluate user-provided +code. VTube Studio-specific behavior belongs here; installation, validation, +permissions, secret approval, lifecycle, limits, and isolation belong to the +Trixie server. + +The initial scaffold is intentionally inert. The local VTube Studio WebSocket +connection, user approval/token flow, and action schemas will be added only +after the host contract and security review are complete. + +## Development + +Work on `dev`. Build the current scaffold with: + +```text +rustup target add wasm32-unknown-unknown +cargo build --target wasm32-unknown-unknown --release +``` + +Do not place Twitch credentials, VTube Studio tokens, or generated plugin +packages in this repository. See the Trixie plan and server plugin contract +documentation for the integration boundary. diff --git a/plugin.toml b/plugin.toml new file mode 100644 index 0000000..8014208 --- /dev/null +++ b/plugin.toml @@ -0,0 +1,18 @@ +id = "reaperofveriod.vtube-studio" +name = "VTube Studio" +version = "0.1.0" +api_version = "1" +entrypoint = "trixie_plugin_start" +description = "Trixie integration boundary for VTube Studio actions and status." + +[runtime] +kind = "wasm" +target = "wasm32-unknown-unknown" + +[permissions] +# Capabilities are intentionally empty until each VTube Studio action has a +# reviewed host API, input schema, resource budget, and test fixture. +required = [] + +[configuration] +schema = "" diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..25036ab --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,16 @@ +//! Trixie's independently released VTube Studio plugin boundary. +//! +//! This first scaffold deliberately contains no direct WebSocket, filesystem, +//! process, or secret access. Those capabilities must be provided by an +//! explicitly versioned Trixie host API after the integration contract is +//! reviewed and tested. + +/// The plugin entrypoint reserved for the versioned Trixie WASM host contract. +/// +/// Until the host contract is finalized, the entrypoint is inert and returns +/// zero. It exists so CI can compile and validate the repository as a plugin +/// artifact without implying that VTube Studio actions are implemented. +#[no_mangle] +pub extern "C" fn trixie_plugin_start() -> i32 { + 0 +}