scarab-plugin-api 0.3.3

Plugin API for Scarab terminal emulator: traits, manifest schema, and host bindings for building Scarab plugins
Documentation

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 Plugin trait (lifecycle hooks: on_load, on_output, on_input, on_remote_command, …).
  • PluginManifest schema with Capability and FusabiModule declarations.
  • 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:

at your option.