Hasty Briefsbeta

双语

A fast EDN (Extensible Data Notation) reader written in C11 with SIMD boost

3 months ago
  • #EDN
  • #C11
  • #SIMD
  • EDN(可扩展数据标记)是一种类似JSON但更丰富、更具扩展性的数据格式,常被称为'拥有超能力的JSON'。
  • EDN.C是基于C11编写的高性能零拷贝EDN解析器,支持SIMD加速,兼容ARM64(NEON)、x86_64(SSE4.2)和WebAssembly(SIMD128)平台。
  • EDN.C的核心特性包括:零拷贝解析、最小内存分配、简洁API、内存安全(使用区域分配器)、零依赖以及完整的UTF-8支持。
  • 该库支持可选的Clojure扩展语法,包括:映射命名空间语法、扩展字符字面量、元数据语法、文本块、分数数字和扩展整数格式。
  • 该测试套件包含24个测试组的340多项测试,确保代码健壮性和正确性。
  • EDN.C专为高性能设计,采用SIMD加速、零拷贝字符串、延迟解码和高效集合处理。
  • 提供Unix/macOS/Linux和Windows系统的安装构建指南,支持CMake和Make工具链。
  • API包含EDN字符串解析函数、解析值访问接口,以及列表/向量/映射/集合等数据结构的处理方法。
  • 支持注册自定义读取函数,在解析过程中转换标记字面量。
  • 功能特性包括:值元数据附加、多行文本块支持,以及比率数/扩展整数等多种数字格式。
  • 性能优化手段包含:SIMD加速空白符扫描和标识符解析、转义序列延迟解码、区域内存分配策略。
  • 发展路线图涵盖:深度性能分析、文档扩展、流式解析支持,以及32位x86和ARMv7等更多SIMD平台适配。