Hasty Briefsbeta

双语

Show HN: I built a JSON-RPC library for Zig with compile time reflection

a year ago
  • #Zig
  • #Library
  • #JSON-RPC
  • ZigJR 是一个轻量级的 Zig 语言库,用于实现 JSON-RPC 2.0 协议,支持消息流式传输和原生函数处理。
  • 功能包括解析/构建 JSON-RPC 消息、批量请求/响应,以及通过分隔符或 Content-Length 标头实现消息流式传输。
  • 支持 JSON-RPC 2.0 中的请求、响应、通知和错误消息类型。
  • 包含灵活的日志记录机制,用于调试和检查 JSON-RPC 消息。
  • 提供快速入门示例,包括基础用法的 hello.zig 和 MCP 服务器实现的 mcp_hello.zig。
  • 安装方式是通过 zig fetch 获取库并将其集成到 build.zig 中。
  • 处理函数可以是全局的、结构体作用域的或实例作用域的,并支持从 JSON 到 Zig 类型的自动映射。
  • 内存管理对处理函数自动进行,请求完成后执行清理。
  • 可实现自定义调度器以专门处理 RPC 消息。
  • 示例演示了流式 API 的使用、RPC 管道处理以及手动消息解析/构建。