edfcore: TypeScript EDF/BDF reader for browser and Node.js

Hi everyone!

I recently released edfcore, an open-source, zero-dependency TypeScript library for reading EDF-family biosignal recordings directly in browser and Node.js applications.

It supports EDF, EDF+, BDF, and BDF+ and provides programmatic access to signal samples, channel metadata, per-channel sampling rates, physical units, annotations, and recording timelines.

I built it because I work with EEG data pretty often and wanted reusable JavaScript/TypeScript infrastructure for browser EEG viewers, BCI applications, research platforms, and Node.js tools without having to route every file through Python first.

A few of the format details it handles:

  • Different sampling rates between signals
  • EDF+ annotations
  • Discontinuous EDF+D recordings
  • Signed 24-bit BioSemi BDF samples
  • Physical/digital calibration
  • Large recordings without treating the whole file as one uniform signal matrix

Install:

npm install edfcore

GitHub:

Documentation:

npm:
https://www.npmjs.com/package/edfcore

It is MIT licensed.

I also maintain edf2csv separately for researchers who simply want EDF/BDF recordings converted to CSV:

Would really appreciate feedback from anyone who works extensively with EDF/BDF recordings, especially unusual files or edge cases I should be testing.