-
Notifications
You must be signed in to change notification settings - Fork 949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-organising crate structure #3271
Labels
tracking-issue
Issues which are the entry point to bigger projects.
Comments
thomaseizinger
added
help wanted
priority:important
The changes needed are critical for libp2p, or are blocking another project
labels
Dec 21, 2022
I am flagging this as |
4 tasks
This was referenced Jan 18, 2023
This was referenced Mar 13, 2023
This was referenced Apr 19, 2023
mergify bot
pushed a commit
that referenced
this issue
Apr 25, 2023
These functions were only used for some code in the interop-tests which is easily mitigated and perhaps even easier to understand now. We can thus deprecate these functions and their related types and thereby reduce the API surface of `libp2p-core` and the maintenance burden. This change is motivated by the work around making protocols always strings which requires/required updates to all these upgrades. Related #3806. Related #3271. Related #3745. Pull-Request: #3807.
4 tasks
thomaseizinger
added
priority:important
The changes needed are critical for libp2p, or are blocking another project
tracking-issue
Issues which are the entry point to bigger projects.
and removed
priority:important
The changes needed are critical for libp2p, or are blocking another project
labels
Sep 20, 2023
thomaseizinger
changed the title
Tracking issue for re-organising crate structure
Re-organising crate structure
Sep 20, 2023
thomaseizinger
removed
the
priority:important
The changes needed are critical for libp2p, or are blocking another project
label
Sep 20, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Pitch
The current workspace and dependency structure is heavily guided by its own history. We've moved around many components since it was created and refactored various interfaces. It is time to take a step back and look at the code holistically to organise it in such a way that code that changes together lives together. This will help with:
NetworkBehaviour
interface changes.libp2p-core
is other than "stuff that everything depends on"Vision
libp2p
wants to be a modular networking stack. To make this easy, users need to be able to maintain their own libp2p-compatible networking out-of-tree without much friction. This requires somewhat stable interfaces which we are hoping to provide with this restructuring.Approach
I've already outlined some ideas in #3072 (comment). This issue is to track concrete work items into getting there. The basic idea is to break up
libp2p-core
andlibp2p-swarm
into more focused crates that provide minimal interfaces that are required for interoperability.The following list tries to be ordered. Untangling dependencies can be tricky so I am probably going to miss something. In case someone picks up an item, keep that in mind :)
Tasks
libp2p-identity
crate #3349upgrade::apply
an implementation detail of transport upgrades #3748upgrade::transfer
module #4011address_translation
functionality fromTransport
trait #3953The text was updated successfully, but these errors were encountered: