hyperledger-cacti / cacti

Hyperledger Cacti is a new approach to the blockchain interoperability problem
https://wiki.hyperledger.org/display/cactus
Apache License 2.0
344 stars 286 forks source link

refactor(cmd-api-server,core,core-api): use fastify, drop express #3598

Open petermetz opened 1 month ago

petermetz commented 1 month ago

Description

Express v5 just came out: https://expressjs.com/2024/10/15/v5-release.html but it still doesn't support HTTP 2 so I'd say it's best for us to jump over to the Fastify bandwagon because it has proven itself already (we are already using it in the API server to serve ConnectRPC HTTP 2 traffic)

So this task is about taking it all the way and using Fastify for everything. This involves modifying the core-api/core utility methods/types that are currently dependent on express types. This will be a massive breaking change so we need to schedule this for 3.0.0 instead of a minor or patch release of 2.x.

In the meantime what we can still (probably) do is identify a subset of the places in the code that can be refactored without breaking changes to not use the Express type signatures. (We can create our own type signatures with precision so that they only include a copy of the relevant parts of the Express types/method signatures).

Acceptance Criteria

  1. All tests are still passing.
  2. express and @types/express are completely eliminated from the codebase
aldousalvarez commented 1 month ago

Hello @jagpreetsinghsasan I would like to work on this one, Thanks