Author a Storage Plugin
Goal
Implement a backend plugin that advertises truthful capabilities, streams bytes without buffering whole objects, maps errors into ovstorage codes, and passes the plugin conformance harness.
Recipe
- Start with
docs/public/plugin-development/README.mdfor the shared C ABI, manifest, loader, and build loop. - Use
docs/public/plugin-storage/README.mdfor the storage-specificFactoryandBackendcontract. - Mirror a small reference plugin such as
ovstorage-plugin-httpbefore introducing vendor SDK complexity. (Thefilebackend is built into the library, not a plugin crate, so it is not a template for a loadable plugin.) - Set capability bits only for operations the backend actually honors.
- Add streaming-invariant coverage for any streaming read or write path.
- Run
make verifybefore merge.
Review Checks
- Manifest name/version come from Cargo package metadata.
- Secrets only travel through credential fields or credential providers.
- Write success means durable backend state is visible to a following read.
- Unsupported operations return
Unsupportedand do not advertise the matching capability.