simd-lite/simd-json

Description: Rust port of simdjson

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 36 minutes ago
Added to GitGenius on June 21st, 2026
Created on March 24th, 2019
Open Issues & Pull Requests: 17 (+0)
Number of forks: 102
Total Stargazers: 1,413 (+0)
Total Subscribers: 16 (+0)

Issue Activity (beta)

Open issues: 9
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 1,045 days
Stale 30+ days: 7
Stale 90+ days: 7

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (2)
  • perf (2)
  • easy (1)
  • medium (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 14.6 hours
Mean response time: 103.8 days
90th percentile: 262.0 days
Tracked items: 32

Most active contributors

Detailed Description

The simd-json repository is a Rust port of the high-performance simdjson C++ JSON parser library, designed to bring SIMD-accelerated JSON parsing to the Rust ecosystem. Rather than creating a one-to-one copy of the original C++ implementation, the project adapts simdjson's core principles to integrate naturally with Rust's design patterns and ecosystem conventions. The library provides multiple interfaces for JSON parsing, including DOM-based APIs with both borrowed and owned value types, Serde compatibility for seamless integration with existing Rust serialization frameworks, and a tape-based API for advanced use cases.

Performance is a central design goal, with the library attempting to match the C++ implementation's speed while making pragmatic trade-offs where Rust's constraints or ergonomic considerations warrant them. The library leverages SIMD instructions available on different platforms: on x86 architectures, it selects between AVX2 or SSE4.2 instruction sets when the runtime-detection feature is enabled, on aarch64 it uses NEON instructions, and on WebAssembly it uses simd128 when available. A fallback implementation exists for systems without supported SIMD instructions, though performance degrades significantly in such cases. The documentation explicitly recommends using alternative allocators like snmalloc, mimalloc, or jemalloc instead of the system default for optimal performance.

The codebase makes extensive use of unsafe Rust, a necessity driven by SIMD intrinsics being inherently unsafe and by working around performance bottlenecks that safe Rust imposes. To maintain high quality standards despite this unsafe code, the project employs multiple testing and validation strategies including unit tests for obvious and edge cases, structural property-based testing with randomly generated valid JSON objects, data-oriented property-based testing of string sequences, destructive property-based testing to ensure illegal byte sequences don't crash the parser, and fuzzing based on upstream test cases.

The library offers numerous configurable features to tune behavior for different use cases. The serde_impl feature, enabled by default, provides Serde serializer and deserializer implementations. The runtime-detection feature allows platform-specific optimization selection at runtime. The swar-number-parsing feature enables parsing eight digits at a time for floating-point numbers. Additional features include known-key for alternative hash mechanisms, value-no-dup-keys for stricter duplicate key handling, big-int-as-float for handling very large integers, 128bit support for 128-bit integer parsing, beef for alternative Cow implementations, and ordered-float for Eq-compatible float representation. A portable feature using std::simd is marked as experimental and currently disabled.

According to GitGenius activity tracking, the repository shows a median issue and pull request response latency of 12.9 hours across 29 tracked items, though mean latency is significantly higher at 2659.4 hours, suggesting occasional slower responses on some items. The most active contributor tracked is Licenser with 82 events, followed by bassmanitram with 8 events and lmmx with 5 events. Performance-related issues and enhancement requests have been the most frequently labeled activity. The repository connects to other major Rust projects including pola-rs/polars, rust-lang/rust, and prisma/prisma through overlapping contributors, indicating its relevance within the broader Rust ecosystem. The project is licensed under either Apache License 2.0 or MIT, with appropriate acknowledgment given to the original simdjson project and Serde integration sources.

simd-json
by
simd-litesimd-lite/simd-json

Repository Details

Fetching additional details & charts...