plugin rpc sdk
Summary
-
feat: allow calling static picodata procs using .proc syntax
Use "/path" RPC routes to call plugin-defined endpoints. Use ".proc" RPC routes to call builtin picodata endpoints (for example .proc_instance_info)
-
feat: introduce picoplugin::transport::rpc module
- use RouteBuilder to register rpc endpoints (input and ouptut is raw bytes for now)
- use RequestBuilder to send RPC requests to other instances which are
running a specified plugin.service (guarded by version)
- supported routing by
- explicit instance_id
- replicaset_id
- bucket_id
- any available instance with given service
- supported routing by
- use context::Context to extract information about request or add custom fields at runtime (middleware not yet implemented)
-
chore: add a internal_tests feature in picoplugin for unit tests
-
test: set fiber name in internal tests
-
refactor: make a ConnectionPool for plugins
-
fixup extract stop_service
-
feat: add plugin_name, service_name & service_version to PicoContext
-
refactor: extract stop_service function
-
feat: introduce picoplugin::util::FfiSafeStr for simple string passing over ffi
-
fix: allow sending ?Sized types and receiving RawBytesBuf via ConnectionPool
-
debug: table.keys & table.values utility functions
-
chore: tweak traft::Error::NoSuchInstance
-
feat: add _pico_replicaset_uuid index to _pico_replicaset table
-
chore: clippy warning
-
feat: introduce custom picodata specific error codes for BoxError
- Close #693 (closed)
- Changes should be cherry-picked to 24.2: no
- Docs follow-up:
- schema changes: docs#302 (closed)
- plugin sdk: docs#282 (closed)