alloy-rs / core

High-performance, well-tested & documented core libraries for Ethereum, in Rust
https://alloy.rs
Apache License 2.0
795 stars 156 forks source link

Remove `ethereum_ssz` dependency #701

Closed eserilev closed 3 months ago

eserilev commented 4 months ago

Motivation

Lighthouse is currently migrating our code base and relevant dependencies to alloy_primtives. During the migration we've come across some circular dependency issues between the ethereum_ssz and alloy_primitives crates.

Solution

This PR aims to remove the optional ethereum_ssz dependency as well as the ssz feature flag.

I have an open PR here that implements ssz Decode and Encode for the alloy generic types Bytes and FixedBytes<N> in ethereum_ssz

PR Checklist

michaelsproul commented 3 months ago

How about this for a release strategy?

  1. Release ethereum_ssz v0.6 which depends on alloy-primitives 0.7.7
  2. Release alloy-primitives v0.8 which does not depend on ethereum_ssz at all
  3. Release ethereum_ssz v0.7 which depends on alloy-primitives v0.8

We can try to make the timing quite tight between (2) and (3). I will try to get (1) out ASAP.

DaniPopes commented 3 months ago

Sounds good, although I'm not sure if you need (1), but up to you