JSON semi-indexing implementation details and patterns. Use when working on JSON parsing, semi-index construction, or cursor navigation. Triggers on terms like "JSON index", "semi-index", "interest bits", "balanced parentheses", "JSON cursor".
Implementation details for JSON semi-indexing using succinct data structures.
Comprehensive documentation: See docs/parsing/json.md for full parsing architecture.
See docs/parsing/json.md for details on:
ARM NEON:
vceqq_u8(chunk, splat) // Equality comparison
vcleq_u8(chunk, max) // Unsigned less-than-or-equal
vandq_u8(a, b) // Bitwise AND
vqtbl1q_u8(table, indices) // Nibble lookup (16 parallel)
x86 SSE2/AVX2:
_mm_cmpeq_epi8(chunk, splat) // Equality comparison
_mm_movemask_epi8(cmp) // Extract MSBs as u16 bitmask
_mm256_movemask_epi8(cmp) // AVX2: Extract as u32 bitmask
// src/json/simd/mod.rs
#[cfg(target_arch = "x86_64")]
if is_x86_feature_detected!("avx2") {
avx2::build_semi_index_standard(json)
} else {
x86::build_semi_index_standard(json) // SSE2 fallback
}
#[cfg(target_arch = "aarch64")]
neon::build_semi_index_standard(json)
Always verify SIMD produces identical results to scalar:
fn compare_results(json: &[u8]) {
let scalar = standard::build_semi_index(json);
let simd = simd::build_semi_index_standard(json);
assert_eq!(scalar.ib, simd.ib);
assert_eq!(scalar.bp, simd.bp);
assert_eq!(scalar.state, simd.state);
}
Test at SIMD chunk boundaries (multiples of 16/32):
| Size | succinctly | jq | Speedup | |-----------|-----------------------|-----------------------|------------| | 10KB | 2.4 ms (3.9 MiB/s) | 4.3 ms (2.2 MiB/s) | 1.79x | | 100KB | 4.6 ms (18.4 MiB/s) | 8.2 ms (10.5 MiB/s) | 1.76x | | 1MB | 24.7 ms (32.7 MiB/s) | 43.9 ms (18.4 MiB/s) | 1.78x |
npx skills add rust-works/json-semi-indexing下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer