crabfit/api/adaptors
2023-05-15 23:51:12 +10:00
..
datastore Include documentation for API and subcrates 2023-05-15 23:51:12 +10:00
memory Include documentation for API and subcrates 2023-05-15 23:51:12 +10:00
sql Include documentation for API and subcrates 2023-05-15 23:51:12 +10:00
README.md Include documentation for API and subcrates 2023-05-15 23:51:12 +10:00

Crab Fit Storage Adaptors

This directory contains sub-crates that connect Crab Fit to a database of some sort. For a list of available adaptors, see the api readme.

Adding an adaptor

The suggested flow is copying an existing adaptor, such as memory, and altering the code to work with your chosen database.

Note, you will need to have the following crates as dependencies in your adaptor:

  • common
    Includes a trait for implementing your adaptor, as well as structs your adaptor needs to return.
  • async-trait
    Required because the trait from common uses async functions, make sure you include #[async_trait] above your trait implementation.

Once you've created the adaptor, you'll need to make sure it's included as a dependency in the root Cargo.toml, and add a feature flag with the same name. Make sure you also document the new adaptor in the api readme.

Finally, add a new version of the create_adaptor function in the adaptors.rs file that will only compile if the specific feature flag you added is set. Don't forget to add a not version of the feature to the default memory adaptor function at the bottom of the file.

FAQ

Why is it spelt "adaptor" and not "adapter"?

The maintainer lives in Australia, where it's usually spelt "adaptor" 😎