Skip to content

Conversation

@omariom
Copy link

@omariom omariom commented Feb 7, 2026

Closes #172
While moving the files 🤖 Copilot found and fixed a bug in MemoryEndPoint (GetHashCode without Equals).

Introduce a lightweight Bedrock.Framework.Transports package so consumers can use socket, memory, named pipe, and connection pooling transports without pulling in the full Bedrock.Framework and its Kestrel dependency.

Transports moved:

  • Sockets (SocketConnectionFactory, SocketConnection, etc.) from Bedrock.Framework
  • Memory (MemoryTransport, MemoryEndPoint) from Bedrock.Framework
  • Named Pipes from Bedrock.Framework.Experimental
  • Connection Pooling from Bedrock.Framework.Experimental (HttpEndPoint and HttpConnectionKind remain in Experimental)

Dependency changes:

  • New project uses PackageReference to Microsoft.AspNetCore.Connections.Abstractions instead of FrameworkReference to Microsoft.AspNetCore.App
  • Bedrock.Framework now has a ProjectReference to Bedrock.Framework.Transports

Bug fixes found during extraction:

  • MemoryEndPoint: add missing Equals override to match GetHashCode
  • SocketConnectionFactory: forward CancellationToken to Socket.ConnectAsync
  • IMaxConnectionFeature: change from internal to public so HttpEndPoint in Experimental can implement it across assembly boundaries

…wl#172)

Introduce a lightweight Bedrock.Framework.Transports package so consumers
can use socket, memory, named pipe, and connection pooling transports
without pulling in the full Bedrock.Framework and its Kestrel dependency.

Transports moved:
- Sockets (SocketConnectionFactory, SocketConnection, etc.) from Bedrock.Framework
- Memory (MemoryTransport, MemoryEndPoint) from Bedrock.Framework
- Named Pipes from Bedrock.Framework.Experimental
- Connection Pooling from Bedrock.Framework.Experimental
  (HttpEndPoint and HttpConnectionKind remain in Experimental)

Dependency changes:
- New project uses PackageReference to Microsoft.AspNetCore.Connections.Abstractions
  instead of FrameworkReference to Microsoft.AspNetCore.App
- Bedrock.Framework now has a ProjectReference to Bedrock.Framework.Transports

Bug fixes found during extraction:
- MemoryEndPoint: add missing Equals override to match GetHashCode
- SocketConnectionFactory: forward CancellationToken to Socket.ConnectAsync
- IMaxConnectionFeature: change from internal to public so HttpEndPoint
  in Experimental can implement it across assembly boundaries
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.

Publishing transports as a separate package

1 participant