]> git.ardis.lu - csvio/tag
v0.1.2
object 0add85aed80974ba7b8f8f843b7255289c9d9d49
authorArdis Lu <ardisglu@gmail.com>
Sun, 6 Jul 2025 02:55:44 +0000 (19:55 -0700)
Release v0.1.2

**Performance improvements**

The queuing strategies for `CSVReader` and `CSVWriter` have been updated, improving performance by ~77% (!) for 100 MB reads and ~22% for 100 MB writes. Performance is now on-par with other CSV libraries for "wide" CSV files (i.e., CSV files with 100+ columns), but still lacking for normal-sized CSV files.

Note this change also affects the behavior of an aborted `CSVWriter`: the output CSV file may now *include* the in-progress row that caused the abort (previously it did not include this row). The previous behavior can be replicated by adding logic to the transformation function which also aborts the transformation if the abort signal is passed (e.g., by returning `null` immediately after signaling the abort).

**API changes**

`ArrayLike` outputs from transformation functions are now supported. This functionality may be useful for chained transformations involving DOM APIs that return `ArrayLike` objects (e.g., a `NodeList` object).

`CSVReader` and `CSVWriter` now explicitly support `SharedArrayBuffer` inputs. This change is mainly to preemptively resolve future JS runtime compatibility issues. Previously, SAB was implicitly supported by Node.js but this behavior is not guaranteed across runtimes. So, this change makes SAB work across all JS runtimes.

**Other**

Various improvements to documentation, JSDoc types, packaging, and tests.
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg4OaSdijsW6raSPK3llrsZIEdtk
SQaGaXESF8DcruCNgAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQLtM2v4Je5fC2LOZKLfFclCW7nWuC2mIrdBJgS8lueexwmAcPA09Kz/ASEiSIugjL5
TTyT0+9/UIyW2EIBI7uQw=
-----END SSH SIGNATURE-----
This page took 0.03419 seconds and 3 git commands to generate.