@hackage wireform-core0.1.0.0

Shared FFI primitives for wireform format packages

wireform-core

BSD-3-Clause

[!CAUTION] wireform is in heavy development and has not been published to Hackage yet. APIs may change.

Shared SWAR / SIMD-accelerated primitives used by every wireform-* format package. Format-agnostic; the C sources live in cbits/ and the vendored simde headers in include/simde/.

What's in here

Module Role
Wireform.Builder High-performance byte builder (vendored fast-builder engine).
Wireform.Builder.FastBuilder Builder internals: DataSink, StreamSink, BuildM, etc.
Wireform.FFI C FFI surface (varints, UTF-8 / ASCII / NUL / JSON scanners, …).
Wireform.Encode.Direct Shared direct-write encode buffer.
Wireform.Hash SIMD-accelerated hashing helpers.

Builder

Wireform.Builder is the shared byte builder used by all wireform format packages. It supports O(1) concatenation, direct Handle output without intermediate ByteString allocation, and streaming transforms (compression, encryption) that process chunks as the builder produces them.

Based on fast-builder by Takano Akio (public domain).

This package is intentionally small; it exists so the per-format packages can share the builder engine and the hottest C kernels (e.g. validateUtf8SWAR, countPackedVarints, findByte) without duplicating the __attribute__((target(...))) / simde-features.h plumbing.

Performance tip

Compiling with -fllvm alongside -O2 typically yields 20–30% throughput gains on the encode/decode hot paths. LLVM produces better instruction scheduling and loop vectorisation for the unboxed arithmetic in Wireform.FFI and Wireform.Encode.Direct.

-- in your package's cabal file, or in cabal.project.local:
package wireform-core
  ghc-options: -fllvm

License

BSD-3-Clause. Vendored simde headers carry their own MIT license under include/simde/simde/COPYING and friends.