progit-plugin-sdk 0.2.1

Plugin SDK for ProGit — sandboxed LuaJIT runtime with capability-based security. LSL-1.0 (file-level copyleft, proprietary plugins allowed via the commercial bridge).
Documentation
[package]
name = "progit-plugin-sdk"
version = "0.2.1"
edition = "2021"
authors = ["Markus Maiwald <markus@maiwald.work>"]
description = "Plugin SDK for ProGit — sandboxed LuaJIT runtime with capability-based security. LSL-1.0 (file-level copyleft, proprietary plugins allowed via the commercial bridge)."
license-file = "LICENSE"
repository = "https://git.sovereign-society.org/ProGit/progit-plugin-sdk"
keywords = ["progit", "plugin", "sdk", "lua", "wasm"]
categories = ["development-tools", "api-bindings"]
readme = "README.md"

[dependencies]
# LuaJIT bindings. The `send` feature is required for capability handles
# (Arc<Mutex<...>>) to cross the FFI boundary safely.
mlua = { version = "0.11", features = ["luajit", "vendored", "serialize", "send"] }

# WASM runtime — opt-in only. +8 MB to default binary, banned from defaults
# per Doctrine 1.
wasmtime = { version = "28.0", optional = true }
wasmtime-wasi = { version = "28.0", optional = true }

# Serialisation for plugin communication
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Error handling
thiserror = "2.0"
anyhow = "1.0"

# HTTP client for the sandboxed `http` Lua module.
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }

# Logging — routes Lua `log` table to host logger.
log = "0.4"

[features]
default = ["lua"]
lua = []
wasm = ["wasmtime", "wasmtime-wasi"]
full = ["lua", "wasm"]

[dev-dependencies]
tempfile = "3.23"
env_logger = "0.11"

[lib]
name = "progit_plugin_sdk"
path = "src/lib.rs"

[[example]]
name = "lua_hello_world"
path = "examples/lua_hello_world.rs"

[[example]]
name = "wasm_hello_world"
path = "examples/wasm_hello_world.rs"
required-features = ["wasm"]