scarab-plugin-api
Plugin API for the Scarab terminal
emulator. Defines the Plugin trait, manifest schema, host bindings, and
shared types that 3rd-party plugins build against.
Status: pre-1.0. The API surface is in active development; expect breaking changes between 0.x minor versions until 1.0.
What this crate provides
- The
Plugintrait (lifecycle hooks:on_load,on_output,on_input,on_remote_command, …). PluginManifestschema withCapabilityandFusabiModuledeclarations.HostBindings— ECS-safe bindings with capability checks, quotas, and rate-limiting that plugins use to talk back to the host.- Shared types:
MenuItem,RenderItem,KeyTable,FocusableRegion, etc.
Plugins themselves are typically authored in Fusabi
(.fsx source for hot-reloadable client UI scripts; .fzb compiled bytecode
for daemon-side hooks). Native Rust plugins are also possible by implementing
the Plugin trait directly when the host loader supports them.
Versioning
Tracks the Scarab workspace version. The API_VERSION constant in lib.rs
is the version plugin manifests check against for compatibility.
License
Dual-licensed under either:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT)
at your option.