A Cloud native multi-package registry.
Enseada is a modern, fast and scalable package registry, designed from the ground up to run in elastic, container-based environments and to be highly available and distributed.
It leverages scalability by using natively distributed technologies
The registry itself is written in Rust, a statically typed and extremely fast programming language built for correctness and safety.
CouchDB is used as the primary datastore, containing information about repositories, users and access control. CouchDB is a web-native database written in Erlang and based on web technologies like HTTP and JSON.
Packages are can be stored in CouchDB itself, as file attachments, or in distributed object storage services like Amazon S3. The latter are recommended for production usage.
Enseada aims at providing a small, yet complete set of feature for managing software packages. Security is a priority concern, so an advanced policy engine provides the capabilities to define fine grained permissions over repositories and packages. From human users to automated service accounts, every access to the system is controlled, filtered and logged. A fully compliant OAuth 2 implementation allows integration with third party systems with ease.
A set of RESTful APIs allows to programmatically interact with Enseada and its resources. Check the documentation for more information.
Supported package repositories
Enseada is a multi-package registry, meaning it can support a large number of package formats and registry APIs.
At the moment, the following formats are supported:
- Maven 2/3
- NPM (planned, coming soon)
- RubyGems (planned, coming soon)
- Rust crates (planned, coming soon)
- Go module proxy (planned, coming soon)
Supported storage providers
Enseada abstracts the underlying storage provider with a custom storage engine tailored for its use cases.
At the moment, the following providers are supported:
- CouchDB File Attachments
- S3 compatible (AWS S3, Minio, DigitalOcean Spaces, Scaleway Object Storage, Ceph, etc)