9 septembre 2020

Meuse 1.0.0 released!

Today, I released the version 1.0.0 of Meuse, a free private registry for the Rust programming language.

Everything started last year when I read the release note of Rust 1.34. The release note was mentioning the support for alternate registries in Cargo.
This day, I decided to write my own one.

first commit screenshot for the meuse project

I quickly pushed some code, and added new features little by little, including for example:

  • A full implementation of the alternative registries RFC.

  • Storing crates on various backends, including S3.

  • Crates.io mirroring (with also S3 support).

  • User, roles, tokens and crates management using a simple API.

  • A small frontend to browse crates.

  • And tons of other things !

There is always new things to add, but I’m already very happy with the state of the project, and that’s why I decided to release the version 1.0.0. I will of course continue to add new things in the future.

Some work will also be needed in Cargo. For example, Cargo does not pass the authentication token for the search and download commands (you can check the issue for more information), which is my main issue today (I would like to enable authentication on all endpoints).

P.S: I’m a very bad frontend developer. If a frontend dev would like to help me create a prettier and easier to use frontend for Meuse, please ping me ;)

New features in this release

  • PostgreSQL schema configuration: a new configuration key was added to make the PostgreSQL schema used by Meuse configurable.

  • New metrics were added to the jgit crate index implementation.

  • The project was migrated from Aleph to Jetty for the HTTP server.

  • Better error handling when a crate fails to be created (clever rollbacks) to prevent the registry to have partial data saved on one part of the system (for example, having the crate created in the database but not in the crate index).

  • Tokens: save the last usage date. Everytime a token is used, the date is saved in the database. It can help you detect used and unused tokens.

Tags: clojure rust meuse

Add a comment








Top of page