跳到主要内容

编解码

本目录汇总了通用数据编解码/校验工具的基础使用教程和选型建议,涵盖 Base64、CRC 等核心能力。我们基于“使用场景 + 性能需求 + 生态兼容性”推荐最优实现,帮助开发者快速选择和落地方案。

Base64

主流 Base64 库

  1. 基础稳定实现:turbo、abseil
  • 核心特点:算法成熟稳定,跨平台兼容性好,无特殊硬件依赖,API 设计友好;
  • 生态兼容性:turbo/abseil 为主流 C++ 基础库,可无缝集成到大多数业务项目。
  1. 高性能实现:vamos
  • 核心特点:SIMD 指令集加速,编码/解码速度比传统算法高数倍,无动态内存分配;
  • 硬件依赖:需 CPU 支持 SIMD(如 x86 的 SSE/AVX,ARM 的 NEON)。
  1. 其他常用库
  • OpenSSL:内置 Base64 编解码接口,适合已集成 OpenSSL 的加密/网络项目;
  • nlohmann-json:提供轻量 Base64 工具函数,适合 JSON 序列化场景轻量使用。

选型建议

  1. 轻量通用场景(使用频率低、单次数据量小)
  • 推荐:turbo::base64
  • 理由:无需额外引入专用库,可直接在 turbo 生态内调用,API 简洁满足日常基础需求。
  1. 高性能场景(大数据量、高频调用)
  • 推荐:vamos::base64
  • 理由:SIMD 加速显著提升性能,无内存分配开销,适合大数据处理、CDN 内容转换、高并发服务等核心场景。
  1. 生态匹配场景
  • 项目已基于 abseil 技术栈:优先使用 abseil::base64 保持技术栈一致;
  • 项目已集成 OpenSSL/nlohmann-json:直接使用库内置 Base64 接口,减少依赖冗余。

总结

场景类型推荐库核心优势
轻量通用turbo易用,无额外依赖
高性能高吞吐vamosSIMD 加速,低内存开销
生态匹配(加密/JSON)OpenSSL/nlohmann-json无新依赖,契合现有业务

十六进制编码/解码

概述

十六进制编码/解码支持二进制与十六进制字符串的双向转换,主要用于轻量场景,如日志打印、网络包解析、加密密钥可视化。函数逻辑简单,无复杂参数配置。

支持库 & 选型建议

核心描述选型建议
turbo入口:turbo/strings/escape.h,提供基础 HexEncode/HexDecode 接口,符合项目核心技术栈,无额外依赖强烈推荐:所有十六进制编码/解码场景均可使用 turbo,接口简单且与项目依赖一致
abseil提供基础十六进制编解码功能,但在本项目中仅因 protobuf 依赖间接引入,未主动集成或使用不推荐主动使用:仅在遗留代码依赖 abseil 时兼容,所有新场景建议使用 turbo

集成指南