Documentation channel: current development main at compiler checkpoint 1d7e15e. The latest tagged release is v0.0.3; pages identify APIs that are not yet released.
Networking
Strut's networking substrate keeps the core small: TCP connect, listen, accept, reads, writes, explicit close, and executor-backed async connect/accept. Higher-level HTTP client/server, TLS, and WebSocket facilities are independently selected runtime components; application protocols and policy remain package or application concerns.
TCP client
function main() -> int : NetworkError {
socket := tcp_connect("example.com", 80);
socket.write("GET / HTTP/1.0\r\n\r\n");
response := socket.read(4096);
print(response);
socket.close();
return 0;
}
TCP listener
function main() -> int : NetworkError {
listener := tcp_listen("127.0.0.1", 8080);
socket := listener.accept();
socket.write("hello");
socket.close();
listener.close();
return 0;
}
Async connect and accept
tcp_connect_async and accept_async() use Strut's shared native executor and return futures.
