ipld / libipld

Rust IPLD library
Apache License 2.0
135 stars 40 forks source link

Replace `prost` with `quick-protobuf` #168

Closed dignifiedquire closed 1 year ago

dignifiedquire commented 1 year ago

Currently rust-libp2p and iroh are working on getting rid of the need for protoc in its builds. The current plan is to switch to quick-protobuf.

For iroh it would be very useful if libipld switched too, as we otherwise need to avoid parts of libipld.

Refs:

vmx commented 1 year ago

The current DAG-PB version is not spec compliant. The proper fix would be to do the same as the JS implementation and the Go implementation and just encode and decode manually, so no need for a protocol buffers library would be needed. Both implementations can serve as a template, depending on whether someone prefers JS or Go.

AFAICT libipld currently doesn't need protoc as we've checked in the generated file.

dignifiedquire commented 1 year ago

AFAICT libipld currently doesn't need protoc as we've checked in the generated file.

There is still a dependency on prost which I would like to drop.

dignifiedquire commented 1 year ago

The current DAG-PB version is not spec compliant. The proper fix would be to do the same as the JS implementation and the Go implementation and just encode and decode manually, so no need for a protocol buffers library would be needed. Both implementations can serve as a template, depending on whether someone prefers JS or Go.

That's a lot more work though.