-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Information
Whoa, you've made it to the Developer Docs. First of all: Thank you so much for considering contributing to this project! We welcome any contributions that you are willing to make, no matter how small or big. With that out of the way, let's dive straight into some information on getting started.
To get started developing, clone the repo and run bun install:
git clone https://github.com/iglu-sh/iglu
bun installThe project structure is as follows:
- builder: The Iglu Builder part of the project, for in-depth developer information go to: https://github.com/iglu-sh/iglu/wiki/Builder-Developer-Information
- cache: The Caching part of the project, for in-depth developer information go to: https://github.com/iglu-sh/iglu/wiki/Cache-Developer-Information
- nix: Nix flakes and utils for our flake.nix, generally not important for developing
- shared: Shared functions and utils that can be re-used in multiple parts of this project
- tests: Unit-tests
- <project-root>: Config files
The Goal of the Iglu Project is not to replicate cachix 1:1, we want to take as many routes from the official cachix servers as we need to provide basic pushing and pulling and implement them. Again, we are not aiming for a 1:1 replication, however we are not opposed to Pull Requests that implement routes from cachix, if you want to do that, go ahead. In General all Routes that are need for Cachix
In general, all responses from all parts of the Iglu Project, that are outward-facing (i.e REST-Routes, WebSocket Messages) will return in this format:
{
"status_code": 200,
"status_message": "A Status Message",
"is_error": false,
"timestamp": 1778690349,
"data": {
"some_non_standardized": "data"
},
}This is done so, in case you want to create a third party app for iglu, can rely on the top level keys to always be present.
Howver, all rules must have excpetions and so does this rule: Endpoints that are standardized by cachix will return in the cachix format (documented here: https://app.cachix.org/api/v1/ ).