zcatp2p/src/main.zig
reugenio b4e4e946eb Añadir módulos TLS, STUN y Relay
- src/tls.zig: TLS 1.3 con X25519 (std.crypto), HKDF, handshake
- src/stun.zig: Cliente STUN para NAT traversal
- src/relay.zig: Cliente relay para NAT simétricos
- Actualizar main.zig con exports de nuevos módulos
- Todos los tests pasan

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 01:17:16 +01:00

50 lines
1.8 KiB
Zig

//! zcatp2p - Protocolo P2P para comunicación directa entre empresas
//!
//! Librería Zig para comunicación P2P segura entre instancias de Simifactu.
//! Permite intercambio directo de documentos (facturas, certificados) entre empresas
//! sin necesidad de email ni servicios cloud.
const std = @import("std");
// Módulos públicos
pub const identity = @import("identity.zig");
pub const crypto = @import("crypto.zig");
pub const protocol = @import("protocol.zig");
pub const discovery = @import("discovery.zig");
pub const connection = @import("connection.zig");
pub const tls = @import("tls.zig");
pub const stun = @import("stun.zig");
pub const relay = @import("relay.zig");
// Re-exports principales
pub const DeviceId = identity.DeviceId;
pub const ShortId = identity.ShortId;
pub const Config = connection.Config;
pub const P2P = connection.P2P;
pub const Connection = connection.Connection;
pub const Message = protocol.Message;
pub const ConnectionState = connection.ConnectionState;
pub const NatType = connection.NatType;
pub const Error = connection.Error;
// Content types para Simifactu
pub const ContentTypes = struct {
pub const invoice = "application/x-simifactu-invoice";
pub const invoice_ack = "application/x-simifactu-invoice-ack";
pub const certificate = "application/x-simifactu-certificate";
pub const verifactu = "application/x-simifactu-verifactu";
pub const query = "application/x-simifactu-query";
pub const response = "application/x-simifactu-response";
};
// Utilidades
pub const utils = struct {
pub const deviceIdToString = identity.deviceIdToString;
pub const stringToDeviceId = identity.stringToDeviceId;
pub const verifyDeviceIdString = identity.verifyDeviceIdString;
pub const luhn32 = identity.luhn32;
};
test {
std.testing.refAllDecls(@This());
}