How gregyjames/fastdate works
FastDate is a .NET-facing ISO 8601 parser backed by Rust SIMD routines. A caller submits a string or UTF-8 span, or a list for bulk parsing; the C# parser selects the platform native routine, receives a packed date-time, and exposes component and DateTime conversions. Rust exports architecture-specific single, UTF-16, and bulk parsers. README documents Apple ARM64 NEON and Windows/Linux x64 SSE3 support. Relationships shown are limited to calls and dispatch documented or visible in excerpts; unsampled implementation details are omitted.
Main entry points: NativeWrapper.cs Packed date-time · Library.cs Parser API · lib.rs Rust exports · neon.rs NEON parser
Components 10
Parsing API
- Parser API
src/FastDate/Library.cs - Bulk parsing
src/FastDate/Library.cs
Native Interop
- Native bindings
src/FastDate/NativeWrapper.cs
SIMD Parsing
- Rust exports
src/fastdatecore/src/lib.rs - NEON parser
src/fastdatecore/src/neon.rs - SSE parser
src/fastdatecore/src/sse.rs - SIMD constants
src/fastdatecore/src/constants.rs
Packed Results
- Packed date-time
src/FastDate/NativeWrapper.cs - Date conversions
src/FastDate/DateTimeExtensions.cs
Other components
- Library caller
Connections 13
- Library caller → Parser API: parses dates
README.md - Parser API → Native bindings: calls native
src/FastDate/Library.cs - Parser API → Packed date-time: returns packed
src/FastDate/Library.cs - Library caller → Bulk parsing: parses batches
src/FastDate/Library.cs - Bulk parsing → Native bindings: calls bulk
src/FastDate/Library.cs - Native bindings → Rust exports: invokes exports
src/FastDate/NativeWrapper.cs - Rust exports → NEON parser: exports ARM
src/fastdatecore/src/lib.rs - Rust exports → SSE parser: exports x86
src/fastdatecore/src/lib.rs - NEON parser → SIMD constants: uses constants
src/fastdatecore/src/neon.rs - SSE parser → SIMD constants: uses constants
src/fastdatecore/src/sse.rs - NEON parser → Packed date-time: produces packed
src/fastdatecore/src/neon.rs - SSE parser → Packed date-time: produces packed
src/fastdatecore/src/sse.rs - Packed date-time → Date conversions: converts to dates
src/FastDate/NativeWrapper.cs