# libjrpc **Repository Path**: tinytaro/libjrpc ## Basic Information - **Project Name**: libjrpc - **Description**: libjrpc是一个使用纯C语言实现的轻量级JSON-RPC 2.0协议解析库,专为嵌入式系统和资源受限环境设计。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # libjrpc - C语言实现的JSON-RPC 2.0库 libjrpc是一个使用纯C语言实现的轻量级JSON-RPC 2.0协议解析库,专为嵌入式系统和资源受限环境设计。 ## 特性 - 完整实现JSON-RPC 2.0协议规范 - 零拷贝设计,内存效率高 - 支持请求/响应模式和通知模式 - 内置错误处理机制 - 易于集成和使用 ## 依赖 - cJSON: 用于JSON解析的轻量级C库 - C99兼容的C编译器 ## 构建 ### 作为独立库构建 ```bash mkdir build cd build cmake .. make ``` ### 作为项目的一部分使用 将jrpc.c和jrpc.h复制到您的项目中,并确保满足依赖要求。 ## 依赖管理 本项目使用 git submodule 管理 cJSON 依赖。要获取 cJSON 子模块,请执行以下命令: ```bash git submodule init git submodule update ``` 或者在克隆时使用 --recursive 选项: ```bash git clone --recursive ``` ## 示例 查看[example](example)目录中的示例程序,了解如何使用libjrpc构建JSON-RPC客户端和服务器。 ## API参考 ### 核心类型 - `cJSON*`: 来自cJSON库的JSON对象指针 - `jrpc_proc_t`: 方法处理函数指针类型 ### 核心函数 #### jrpc_create_request ```c cJSON* jrpc_create_request(const char *method, cJSON *params, cJSON *id); ``` 创建JSON-RPC请求对象。 #### jrpc_create_response ```c cJSON* jrpc_create_response(const cJSON* result, const cJSON* error, const cJSON* id); ``` 创建JSON-RPC响应对象。 #### jrpc_create_error_response ```c cJSON* jrpc_create_error_response(int code, const char *message, const cJSON* id); ``` 创建JSON-RPC错误响应对象。 #### jrpc_register_method ```c int jrpc_register_method(const char* name, jrpc_proc_t proc, void* data); ``` 注册一个方法处理函数。 #### jrpc_unregister_method ```c int jrpc_unregister_method(const char* name); ``` 注销一个方法处理函数。 #### jrpc_invoke_method ```c cJSON* jrpc_invoke_method(cJSON* request); ``` 调用已注册的方法处理函数。 ## 许可证 MIT