mini-curl
描述
mini-curl 是以 C/CPP 编写的自包含迷你 HTTPS 客户端,具有 curl 风格的命令行界面。它是复刻流行 curl 工具接口的命令行 HTTP/HTTPS 客户端。
项目自包含:所有网络与密码功能由内置 crypery 库(纯 C/C++ 网络协议栈)提供;唯一的外部依赖是 zlib(可选,用于 gzip 解压)。客户端同时支持普通 HTTP 与 HTTPS(TLS 1.2/1.3)。所有密码算法均在 crypery 库内从零实现 - 不使用 OpenSSL 及其他外部密码库。
使用的模块
- crypery/tls - 基础密码层:纯 C 的 TLS 1.2/1.3 实现(AES-128-GCM、SHA-256、HMAC-SHA256、HKDF、RSA-2048、ECDH P-256/X25519、X.509 证书)
- crypery/ssl - 内置 TLS 之上的 OpenSSL 兼容 API 层:握手、套接字加密输入输出、超时、证书验证
- crypery/url - HTTP/HTTPS 客户端库:URL 解析、HTTP/1.1 请求、响应读取(Content-Length、分块)、重定向、multipart 表单、DNS 解析、带超时的连接
- zlib - 用于解压 gzip 响应的可选库
技术
- C/CPP - 客户端代码
- crypery - 内置网络与密码库:TLS 1.2/1.3(AES-128-GCM、SHA-256、HMAC-SHA256、HKDF、RSA-2048、ECDH P-256/X25519、X.509 证书)、OpenSSL 兼容 API、HTTP/HTTPS 客户端
- zlib - 可选,用于 gzip 解压
- Windows(MinGW、Winsock)与类 Unix 系统(BSD 套接字)
- GCC / MinGW-w64,构建脚本 build_curl.bat(-O2)