flare_mlake · API

flare.tcp

Blocking TCP streams and listeners.

Built on flare.net POSIX socket primitives. Every connection has TCP_NODELAY set by default for low-latency I/O.

Public API
from flare.tcp import TcpStream, TcpListener
  • TcpStream — A connected TCP socket: connect, read, write, close.
  • TcpListener — A bound, listening TCP socket: bind, accept.

All operations raise typed errors from flare.net on failure.

Example
from flare.tcp import TcpStream, TcpListener
from flare.net import SocketAddr

def echo_server() raises:
    var listener = TcpListener.bind(SocketAddr.localhost(9000))
    var client = listener.accept()

    var buf = List[UInt8](capacity=4096)
    buf.resize(4096, 0)
    var n = client.read(buf.unsafe_ptr(), len(buf))
    _ = client.write(Span[UInt8, _](buf)[:n]) # echo back
    client.close()

def echo_client() raises:
    var conn = TcpStream.connect(SocketAddr.localhost(9000))
    _ = conn.write("hello\n".as_bytes())
    var buf = List[UInt8](capacity=4096)
    buf.resize(4096, 0)
    _ = conn.read(buf.unsafe_ptr(), len(buf))
    conn.close()