Page MenuHomeDevCentral

Migrate Alkane to axum
Open, NormalPublic

Description

Alkane offers a REST API to offer the same capabilities in CLI and HTTP requests.

This REST API uses Rocket 0.4, which became complicated to compile.

During T2131 investigation, we showed 0.4 has been broken since December 2024, with a first issue 2024-12-15 and a second one 2025-06-23, without any issue report on GitHub for neither of them.

It seems the Rocket users moved to other frameworks or updated to 0.5 or don't upgrade their build toolchain. Whatever the scenario, the promise made by Rocket to support 0.4 as long as 0.6 isn't released become somewhat moot.

A full framework like Rocket for Alkane is overkill: the HTTP server needs to answer 5 web requests: /status and 4 for Alkane deployment operations.

Axum is presented as a thin layer on the top of hyper (the same HTTP server used by Rocket), and maintained in the tokio ecosystem. It's also where former Rocket users move to.

Plan for Alkane is so to migrate to Axum, with or without any help of rLF.

Event Timeline

dereckson triaged this task as Normal priority.Tue, Sep 23, 17:42
dereckson created this task.
dereckson renamed this task from Migrate Alkane to Axum to Migrate Alkane to axum.Tue, Sep 23, 21:53

This evening, I've experimented two things:

  • D3717: try a straightforward migration without rLF so we can identify boilerplate code specific to axum
  • D3716: port request body guard added in D2994 especially for Alkane (see D2995)

Plan is:

  • to use D3716 AxumRequestBody code into D3717
  • move D3717 kernel.rs get_socket_address() / most of run() into limiting-factor-axum