# lib-zc **Repository Path**: xiaoyouyou2012/lib-zc ## Basic Information - **Project Name**: lib-zc - **Description**: C 扩展库,异步io,协程,服务进程管理,mime库,http服务器库,json,redis,imap,pop库等. 支持 Linux/Windows/Mac/gcc/clang/msvc/mingw等 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 48 - **Created**: 2025-03-16 - **Last Updated**: 2025-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 LIB-ZC 是一个Linux平台通用C/C++扩展库. 兼容 Windows/Macos, 支持 GCC/CLANG/MINGW/MSVC, 支持 X64/AMD64/ARM64 开源, 仓库地址: [https://gitee.com/linuxmail/lib-zc](https://gitee.com/linuxmail/lib-zc) 纯 C 库部分能独立工作, [https://gitee.com/linuxmail/lib-zc/blob/master/doc/index_c.md](https://gitee.com/linuxmail/lib-zc/blob/master/doc/index_c.md) ## 共同进步 欢迎各位爱好者提 bug/issues/pull requests ## 模块列表 * [通用配置](https://gitee.com/linuxmail/lib-zc/blob/master/doc/config_cpp.md), [通用命令行参数](https://gitee.com/linuxmail/lib-zc/blob/master/doc/main_argument_cpp.md), [通用日志](https://gitee.com/linuxmail/lib-zc/blob/master/doc/log_cpp.md) * [BASE64/QUOTED-PRINTABLE/HEX/NCR](https://gitee.com/linuxmail/lib-zc/blob/master/doc/encode_cpp.md), [URL](https://gitee.com/linuxmail/lib-zc/blob/master/doc/url_cpp.md) * [字符集转码, 字符集探测](https://gitee.com/linuxmail/lib-zc/blob/master/doc/charset_cpp.md) * [常见的IO函数, 超时IO函数](https://gitee.com/linuxmail/lib-zc/blob/master/doc/io_cpp.md), [TCP SOCKET](https://gitee.com/linuxmail/lib-zc/blob/master/doc/tcp_socket_cpp.md), [DNS/IP地址/MAC地址](https://gitee.com/linuxmail/lib-zc/blob/master/doc/dns_pp.md) * [字符串函数](https://gitee.com/linuxmail/lib-zc/blob/master/doc/string_cpp.md), [时间函数](https://gitee.com/linuxmail/lib-zc/blob/master/doc/time_cpp.md) * [操作系统函数](https://gitee.com/linuxmail/lib-zc/blob/master/doc/os_cpp.md), [文件操作函数](https://gitee.com/linuxmail/lib-zc/blob/master/doc/file_cpp.md) * [OPENSSL函数, 线程安全,异步SSL,支持SNI](https://gitee.com/linuxmail/lib-zc/blob/master/doc/cpp_openssl.md) * [IO流(STREAM),支持SSL](https://gitee.com/linuxmail/lib-zc/blob/master/doc/stream_cpp.md) * [master/server服务管理框架, server包括异步IO模式和协程模式](https://gitee.com/linuxmail/lib-zc/blob/master/doc/cpp_master.md) * [异步IO开发框架, 包括 TRIGER, 异步IO, 缓存读写, 定时器, 支持SSL](https://gitee.com/linuxmail/lib-zc/blob/master/doc/aio_cpp.md) * [协程开发框架, 支持文件类(read, lseek, link等)操作协程化,支持锁和条件](https://gitee.com/linuxmail/lib-zc/blob/master/doc/coroutine.md) * [IO管道(代理)库, 协程风格和异步IO风格](https://gitee.com/linuxmail/lib-zc/blob/master/doc/iopipe_cpp.md) * [MIME 邮件解析库](https://gitee.com/linuxmail/lib-zc/blob/master/doc/mime_cpp.md), [TNEF 邮件解析库](https://gitee.com/linuxmail/lib-zc/blob/master/doc/tnef_cpp.md), [BASE64/QUOTED-PRINTABLE](https://gitee.com/linuxmail/lib-zc/blob/master/doc/encode_cpp.md) * [REDIS 客户端(支持集群)](https://gitee.com/linuxmail/lib-zc/blob/master/doc/redis_client_cpp.md) * [MEMCACHE 客户端](https://gitee.com/linuxmail/lib-zc/blob/master/doc/memcache_client_cpp.md) * [httpd服务器库](https://gitee.com/linuxmail/lib-zc/blob/master/doc/httpd_cpp.md), [URL编解码](https://gitee.com/linuxmail/lib-zc/blob/master/doc/url.md) * [IMAP 客户端](https://gitee.com/linuxmail/lib-zc/blob/master/include/zcc/zcc_imap.h) * [POP 客户端](https://gitee.com/linuxmail/lib-zc/blob/master/include/zcc/zcc_pop.h) * [JSON 解析库](https://gitee.com/linuxmail/lib-zc/blob/master/doc/json_cpp.md) * [SQLITE3封装](https://gitee.com/linuxmail/lib-zc/blob/master/include/zcc/zcc_sqlite3.h) * [一个全新的CONST DB库](https://gitee.com/linuxmail/lib-zc/blob/master/doc/cdb_cpp.md) * [多关键字搜索](https://gitee.com/linuxmail/lib-zc/blob/master/doc/msearch_cpp.md) * SQLITE3 代理服务器/客户端 * 类 REDIS 服务器端 ## 连接或监听地址 * "domain_socket_somepath" * "somedomain:port" ## 时间/超时 * 如无特别说明, 所有的时间单位都是秒 * 如果是毫秒, 函数名或形参会明确提示 * 实参取值-1则表示无限长 ## 返回值 * 和(网络)io相关的函数, 如果返回值类型是int, 如果返回 < 0, 表示出错 ## 编译 cmake 环境, 推荐 vscode 开发和编译 得到: libzc.a(基础库) 和 libzc_coroutine.a(协程库) // Linux平台 make 亦可 ## 使用 源码 cpp_sample/下有大量例子,可供参考 libzc.a 在源码目录下, include 文件 在 include/zcc/*.h ```shell $ cat a.cpp #include "zcc/zcc_stdlib.h" int main(int argc, char **argv) { /* foo(); */ return 0; } $ gcc a.cpp ./libzc.a ```