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)
Merge request reports
Activity
assigned to @gmoshkin
added 126 commits
-
c3646582...4c2bf489 - 124 commits from branch
master
- b463295f - fix: make define_clusterwide_tables macro match <Table>::index_definitions
- 19460687 - WIP: rpc sdk poc
-
c3646582...4c2bf489 - 124 commits from branch
added 5 commits
- 0718c130 - feat(plugins): add data migration mechanism for plugins
- 9cb5d5f3 - feature(plugin): new plugin sdk module structure
- ea58134b - feature(plugins): add `internal` module for plugin sdk
- cd539ea9 - fix: make define_clusterwide_tables macro match <Table>::index_definitions
- 659d9638 - WIP: rpc sdk poc
Toggle commit listadded 85 commits
-
0ecce2e3...692b13e5 - 68 commits from branch
derevtsov/plugin_sdk_0
- 692b13e5...9fe8897d - 7 earlier commits
- a28f4708 - fix: allow sending ?Sized types and receiving RawBytesBuf via ConnectionPool
- 8dbaec49 - feat: introduce picoplugin::util::FfiSafeStr for simple string passing over ffi
- 3ae6f609 - refactor: extract stop_service function
- 8362834c - feat: add plugin_name, service_name & service_version to PicoContext
- cbe3791e - fixup extract stop_service
- e87a24b9 - refactor: make a ConnectionPool for plugins
- b278659c - test: set fiber name in internal tests
- 6cba7b25 - chore: add a internal_tests feature in picoplugin for unit tests
- 186d37ba - feat: introduce picoplugin::transport::rpc module
- acfdfc64 - feat: allow calling static picodata procs using .proc syntax
Toggle commit list-
0ecce2e3...692b13e5 - 68 commits from branch
requested review from @k.derevtsov
added 7 commits
- f4ca27df - refactor: extract stop_service function
- 015b2ff3 - feat: add plugin_name, service_name & service_version to PicoContext
- d4f93338 - refactor: make a ConnectionPool for plugins
- ccb4028c - test: set fiber name in internal tests
- 9a05dbf1 - chore: add a internal_tests feature in picoplugin for unit tests
- 52539dfb - feat: introduce picoplugin::transport::rpc module
- a2b038cb - feat: allow calling static picodata procs using .proc syntax
Toggle commit listadded 12 commits
- a2b038cb...c018e743 - 2 earlier commits
- 52125a4e - debug: table.keys & table.values utility functions
- 79ac6218 - fix: allow sending ?Sized types and receiving RawBytesBuf via ConnectionPool
- f10f92f4 - feat: introduce picoplugin::util::FfiSafeStr for simple string passing over ffi
- 25058b24 - refactor: extract stop_service function
- 6d1ad390 - feat: add plugin_name, service_name & service_version to PicoContext
- 61ff4aa6 - refactor: make a ConnectionPool for plugins
- 1eb704bf - test: set fiber name in internal tests
- ccd71c07 - chore: add a internal_tests feature in picoplugin for unit tests
- 94271629 - feat: introduce picoplugin::transport::rpc module
- 567895fe - feat: allow calling static picodata procs using .proc syntax
Toggle commit listadded 1 commit
- dd34cc8e - feat: set fiber name when executing plugin RPC handlers
- Resolved by Georgy Moshkin
- Resolved by Georgy Moshkin