Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 2.78 KB

File metadata and controls

70 lines (56 loc) · 2.78 KB

XFetch bannerAPI

Shared crates for the xfetch ecosystem.

Today this repository contains the public plugin SDK used by the core, official plugins, and third-party plugin authors.

Current Scope

  • crates/plugin-api: shared protocol crate for xfetch plugins.
  • crates/extension-api: shared protocol crate for xfetch extensions (config providers).
  • crates/effect-api: shared protocol crate for xfetch effects (intro animations over the info lines).
  • docs/: focused documentation for setup, protocol, SDK usage, and examples.

Main Crate

The first public crate in this repository is xfetch-plugin-api.

  • Defines the wire protocol used between xfetch and plugins.
  • Provides typed helpers for reading requests and writing responses.
  • Exposes a stable base for official and third-party plugin development.

Effect API

crates/effect-api (xfetch-effect-api) is the contract for effects: installable intro animations. The core renders the info lines and sends them to an effect binary (xfetch-effect-<name>); the effect returns a sequence of frames (delay + transformed lines) that the core plays before settling on the final content. Effect implementations are collected in the xfetch-cli/effects repository (the reference decrypt effect lives there).

  • Request carries the rendered lines plus style, duration_ms, fps and free-form args.
  • Response is a non-empty list of EffectFrame { delay_ms, lines }.
  • Effects are opt-in: a missing binary or invalid response simply skips the intro (no behavior change).

Documentation

Notes

  • This repository owns shared contracts, not end-user config files.
  • Official plugins are expected to use the same public SDK as external plugins.
  • Protocol changes should land here first and then be adopted by the core and plugin repos.