Skip to content
Snippets Groups Projects
  1. Apr 24, 2024
    • godzie44's avatar
      feature: two-step plugin installing and removing · 6a39a360
      godzie44 authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Now for installation and enable plugin, there are two steps instead of one
      (`pico.load_plugin` previously).
      1. Install plugin (`pico.install_plugin`):
      validate plugin, create system tables.
      2. Enable plugin (`pico.enable_plugin`):
      loads plugin into instances memory, call `on_start` callback.
      
      Same for a plugin removing process (`pico.remove_plugin` previously):
      1. Disable plugin (`pico.disable_plugin`): call `on_stop` callbacks, drop
      plugin from instances.
      2. Remove plugin (`pico.remove_plugin`):
      remove plugin meta from system tables.
      6a39a360
  2. Apr 09, 2024
    • godzie44's avatar
      feature: plugins · 26b11774
      godzie44 authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Introduce a plugin system for picodata cluster.
      Plugin system contains:
      - `picoplugin` crate with plugin interfaces.
      This crate exposes plugin interfaces for user implementation and API
      that used by picodata to interact with plugin as with a code from dynamic library.
      - Support for plugin work cycle in picodata instance work cycle.
      Picodata instance interacts with running plugin by `PluginManager`
      component.
      Typically, plugins react to events that occur in instance or whole cluster.
      - New lua API with plugin CRUD actions.
          - pico.create_plugin - load a new plugin into picodata cluster
          - pico.remove_plugin - remove plugin from picodata cluster
          - pico.update_plugin_config - update plugin service configuration
      26b11774
Loading