Garage has many API that you can rely on to build complex applications. In this section, we reference the existing SDKs and give some code examples.
⚠️ DISCLAIMER
K2V AND ADMIN SDK ARE TECHNICAL PREVIEWS. The following limitations apply:
- The API is not complete, some actions are possible only through the
garage
binary - The underlying admin API is not yet stable nor complete, it can breaks at any time
- The generator configuration is currently tweaked, the library might break at any time due to a generator change
- Because the API and the library are not stable, none of them are published in a package manager (npm, pypi, etc.)
- This code has not been extensively tested, some things might not work (please report!)
To have the best experience possible, please consider:
- Make sure that the version of the library you are using is pinned (
go.sum
,package-lock.json
,requirements.txt
). - Before upgrading your Garage cluster, make sure that you can find a version of this SDK that works with your targeted version and that you are able to update your own code to work with this new version of the library.
- Join our Matrix channel at
#garage:deuxfleurs.fr
, say that you are interested by this SDK, and report any friction. - If stability is critical, mirror this repository on your own infrastructure, regenerate the SDKs and upgrade them at your own pace.
About the APIs
Code can interact with Garage through 3 different APIs: S3, K2V, and Admin. Each of them has a specific scope.
S3
De-facto standard, introduced by Amazon, designed to store blobs of data.
K2V
A simple database API similar to RiakKV or DynamoDB. Think a key value store with some additional operations. Its design is inspired by Distributed Hash Tables (DHT).
More information:
Administration
Garage operations can also be automated through a REST API. We are currently building this SDK for Python, Javascript and Golang.
More information: