blit 0.1.0
blit: ^0.1.0 copied to clipboard
Zero-copy Bytes/BytesMut and high-performance random-access file I/O for Dart and Flutter, with native FFI mmap and Web OPFS.
Changelog #
0.1.0 #
First development release.
Added #
- Zero-copy
Bytesviews (slice/sublistO(1)) andBytesMutwithfreeze/splitTo/splitOffcopy-on-write semantics. - Exact
Uint64(hi/lo limbs) for VM, dart2js and dart2wasm, including arithmetic, bitwise, shifts,parseandtoRadixString. BytesReader/BytesWriterfixed-width cursors with BE/LE support.BytesFile/SyncBytesFileand the nativedart:iobackend.- Native mmap engine: Windows
CreateFileMappingW, POSIXmmap/pread; sparse files, zero-copy windows, zeroize, read-only mappings. - Windows
IocpFile: overlapped I/O + IOCP, QD 1–128 batch reads/writes. MappedRegion.prefetch()/discard(): WindowsPrefetchVirtualMemory(discard is a no-op for file-backed maps), POSIXmadvise(MADV_WILLNEED / MADV_DONTNEED).Bytes.getUint8/16/32UncheckedandBytesReader.readUint8/16/32/64Uncheckedhot-path methods (caller checks bounds once).- Direct I/O:
openMmapFileSync(..., direct: true)/ParallelBytesFile.open(..., direct: true)via WindowsFILE_FLAG_NO_BUFFERING+VirtualAlloc, Linux/AndroidO_DIRECT, and macOS/iOSF_NOCACHE; aligned scratch buffers and 4 KiB-aligned streaming reads/writes. ParallelBytesFile: isolate worker pool (default up to 32), automatic FIFO dispatch, batch 32,readMany/writeMany, watermark barriers, adjacent-range coalescing, and a read-only full-file mmap cache for hot files (default limit 1 GiB).- Web OPFS backend: chunk files, double-slot manifest, CRC-32, dedicated worker, capability/quota probing.
- Benchmark suite (
benchmark_test, JIT/AOT + JSONL), a generatedassets/benchmarks.svg, and Dart/Flutter CI workflows. - Tests: differential fuzz, lifetime/error paths, 100k-op stress, 32 GiB sparse.
Fixed during development #
putUint64little-endian limb encoding and atomic failure on short buffers.ParallelBytesFilebarrier deadlock when queued work already existed.- Windows read-only mapping
zeroizeguard and empty-filemapconsistency.