Skip to content

feat(transport/dotnet): add .NET transport interop test plan#812

Open
K-21 wants to merge 2 commits intolibp2p:masterfrom
K-21:dotnet-transport-interop
Open

feat(transport/dotnet): add .NET transport interop test plan#812
K-21 wants to merge 2 commits intolibp2p:masterfrom
K-21:dotnet-transport-interop

Conversation

@K-21
Copy link
Contributor

@K-21 K-21 commented Feb 6, 2026

Summary

Added .NET v1.0 transport interoperability .


What’s included

  • Transport interop test plan for .NET v1.0
  • Covered capabilities:
    • Transports: TCP, QUIC-v1
    • Security: Noise
    • Muxer: Yamux
  • Compatibility matrix across multiple libp2p implementations
  • .gitattributes to enforce consistent LF line endings across platforms

Why .gitattributes was added

On Windows, Git may default to CRLF, which can:

  • introduce noisy diffs in YAML files
  • cause inconsistent formatting
  • break tooling that expects LF line endings

Adding .gitattributes enforces LF-only line endings, ensuring:

  • clean and deterministic diffs
  • consistent test-plan formatting
  • better cross-platform contributor experience

DOTNET-V1.0 TRANSPORT INTEROP COMPATIBILITY

Capabilities: tcp, quic-v1 | noise | yamux


WILL WORK (21 implementations)

Implementation TCP QUIC Via
rust-v0.53 tcp+noise+yamux, quic-v1
rust-v0.54 tcp+noise+yamux, quic-v1
rust-v0.55 tcp+noise+yamux, quic-v1
rust-v0.56 tcp+noise+yamux, quic-v1
go-v0.38 tcp+noise+yamux, quic-v1
go-v0.39 tcp+noise+yamux, quic-v1
go-v0.40 tcp+noise+yamux, quic-v1
go-v0.41 tcp+noise+yamux, quic-v1
go-v0.42 tcp+noise+yamux, quic-v1
go-v0.43 tcp+noise+yamux, quic-v1
go-v0.44 tcp+noise+yamux, quic-v1
go-v0.45 tcp+noise+yamux, quic-v1
python-v0.x tcp+noise+yamux, quic-v1
js-v1.x tcp+noise+yamux
js-v2.x tcp+noise+yamux
js-v3.x tcp+noise+yamux
nim-v1.14 tcp+noise+yamux
jvm-v1.2 tcp+noise+yamux, quic-v1
c-v0.0.1 tcp+noise+yamux, quic-v1
zig-v0.0.1 quic-v1 only
eth-p2p-z-v0.0.1 quic-v1 only

WILL NOT WORK (10 implementations)

Implementation Reason
chromium-js-v1.x No tcp, no quic-v1 (browser)
chromium-js-v2.x No tcp, no quic-v1
firefox-js-v1.x No tcp, no quic-v1
firefox-js-v2.x No tcp, no quic-v1
webkit-js-v1.x No tcp, no quic-v1
webkit-js-v2.x No tcp, no quic-v1
chromium-rust-v0.53 No tcp, no quic-v1
chromium-rust-v0.54 No tcp, no quic-v1
chromium-rust-v0.56 No tcp, no quic-v1

Summary

  • TCP compatible: 19 implementations
  • QUIC compatible: 15 implementations
  • Total unique: 21 implementations
  • Cannot work: 10 (all browser-based)

Note: QUIC , TLS support is currently marked as WIP in the dotnet-libp2p README.md.


@K-21
Copy link
Contributor Author

K-21 commented Feb 6, 2026

@dhuseby @seetadev @flcl42
Can you please review it and let me know if there are any changes?

@@ -0,0 +1,34 @@
# .gitattributes - normalize line endings and enforce LF for text
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need it?

WSL helps on a developer machine, but it doesn’t stop Windows editors or Git from committing CRLFs — .gitattributes enforces LF for everyone so shell scripts don’t break .

@K-21 K-21 requested a review from flcl42 February 8, 2026 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants