MemConn
MemConn provides named, in-memory network connections for Go.
Create a Server
A new net.Listener
used to serve HTTP, gRPC, etc. is created with
memconn.Listen
:
lis, err := memconn.Listen("memu", "UniqueName")
Creating a Client (Dial)
Clients can dial any named connection:
client, err := memconn.Dial("memu", "UniqueName")
Network Types
MemCon supports the following network types:
Network | Description |
---|---|
memb |
A buffered, in-memory implementation of net.Conn |
memu |
An unbuffered, in-memory implementation of net.Conn |
Performance
The benchmark results illustrate MemConn's performance versus TCP and UNIX domain sockets:
MemConn is more performant than TCP and UNIX domain sockets with respect
to the CPU. While MemConn does allocate more memory, this is to be expected
since MemConn is an in-memory implementation of the net.Conn
interface.