Declaraciones públicas de zig/src/transport/unix.zig (spire-zig (SDK consumido)).
apps/docs/generated/zig/spire.jsonPágina generada desde
spire@spire-0.2.0-XvnrRek1BgCX4Bh8miuITCQgkn0FqeQrYYE3goFfDcQd (zig/src/root.zig). No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
Transporte unix de spire (dec-0119 §3.2): el socket de control Bun ↔ daemon. Es el único sitio de styx que abre sockets unix (dec-0117 §6).
Servidor, por conexión:
SO_PEERCRED (Linux) / getpeereid (BSD/macOS): uid/gid en la
allowlist, si no se cierra sin enviar nada.handshake.zig) con plazo de 2 s: hasta que
no se completa no se lee ningún sobre.Router con la identidad
autenticada del peer; la respuesta sale por la misma conexión.Backpressure: cada conexión procesa sus frames en orden (un mensaje en
vuelo por peer); si el peer no lee, su escritura bloquea sólo su hilo.
Un peer que manda basura (sobres descartados) se desconecta al
max_drops-ésimo. Máximo max_conns conexiones a la vez.
Hilo por conexión (el control plane es de baja frecuencia; los bytes de media nunca pasan por aquí, r01).
transport.unix.Errorconst · línea 32
pub const Error = error{ SocketFailed, PathTooLong, AddressInUse, BindFailed, ListenFailed, ConnectFailed, WriteFailed, ReadFailed, Closed, Timeout, HandshakeFailed, ProtocolError, }Sin ///.
transport.unix.PeerCredtype · línea 49
pub const PeerCred = structSin ///.
transport.unix.peerCredfn · línea 54
pub fn peerCred(fd: c.fd_t) ?PeerCredSin ///.
transport.unix.ServerOptionstype · línea 168
pub const ServerOptions = structSin ///.
transport.unix.Serverfn · línea 191
pub fn Server(comptime App: type) typeSin ///.
transport.unix.Server.initfn · línea 232
pub fn init(allocator: std.mem.Allocator, router: *R, opts: ServerOptions) SelfSin ///.
transport.unix.Server.listenfn · línea 239
pub fn listen(self: *Self) Error!voidCrea el socket. Si path ya existe y es un socket, se sustituye
(arranque tras una caída); cualquier otra cosa en esa ruta es un
error (no se borra un fichero ajeno).
transport.unix.Server.startfn · línea 257
pub fn start(self: *Self) !voidSin ///.
transport.unix.Server.stopfn · línea 263
pub fn stop(self: *Self) voidCierra el socket de escucha y todas las conexiones, y espera a sus hilos.
transport.unix.Server.broadcastfn · línea 422
pub fn broadcast(self: *Self, body: []const u8) usizeEnvía un sobre ya sellado (normalmente un evt) a todos los peers autenticados. Devuelve a cuántos llegó.
transport.unix.Server.connectionCountfn · línea 439
pub fn connectionCount(self: *Self) usizeSin ///.
transport.unix.ClientOptionstype · línea 453
pub const ClientOptions = structSin ///.
transport.unix.Clienttype · línea 466
pub const Client = structCliente bloqueante (una petición en vuelo). Lo usan herramientas Zig y
los tests; el cliente de producción de Bun es @spire/bus.
transport.unix.Client.connectfn · línea 475
pub fn connect(allocator: std.mem.Allocator, opts: ClientOptions) (Error || std.mem.Allocator.Error)!ClientSin ///.
transport.unix.Client.closefn · línea 501
pub fn close(self: *Client) voidSin ///.
transport.unix.Client.sendRawfn · línea 510
pub fn sendRaw(self: *Client, body: []const u8) Error!voidEnvía un sobre ya sellado.
transport.unix.Client.requestfn · línea 516
pub fn request(self: *Client, comptime C: type, arena: std.mem.Allocator, msg: C.Request, opts: client_mod.SendOptions, timeout_ms: u32) !client_mod.Reply(C)Petición tipada: sella, envía y espera la respuesta verificada.
Los evt que lleguen entretanto se guardan en events.
transport.unix.Client.awaitReplyfn · línea 523
pub fn awaitReply(self: *Client, comptime C: type, arena: std.mem.Allocator, s: *const client_mod.Sealed, timeout_ms: u32) !client_mod.Reply(C)Sin ///.
transport.unix.Client.nextEventfn · línea 537
pub fn nextEvent(self: *Client, timeout_ms: u32) ![]u8Espera el siguiente sobre que no sea respuesta (evt empujado por el servidor).