Independent open-source maintainer

Small libraries.
Shared foundations.

I’m Borewit. I build and maintain open-source libraries that help developers read music metadata, identify file formats, and process binary data efficiently.

The result is reusable infrastructure: an application can read an album’s tags and cover art, identify a file from its contents, or inspect a remote file without downloading every byte. Developers can build on these libraries instead of implementing the same format details themselves.

The reach of shared infrastructure

Open source in use

Last complete calendar month

Loading monthly downloads from npm…

Packages included in the total

    Source: npm download counts. Totals include dependency and automated downloads, so they do not represent unique people or applications. One installation can download several of these packages.

    From libraries to working software

    What this work makes possible

    01

    Read audio metadata across formats and environments

    music-metadata extracts tags, cover art, duration, and technical audio information from formats including MP3, FLAC, MP4, Ogg, and WAV. It works with files and streams in Node.js and browser applications, giving developers one API across different formats and data sources.

    Choose an audio file in the Audio Tag Analyzer to inspect its metadata and artwork directly in your browser. Your file stays on your device.

    Try the Audio Tag Analyzer · Browse releases · Explore dependent projects · View the analyzer source

    02

    Read the parts of a remote file that matter

    strtok3 provides a shared way to read binary data. With @tokenizer/http and @tokenizer/s3, parsers can read selected portions of remote files using range requests.

    Metadata parsing and file detection can skip data they do not need to read. When the source supports range requests, this can reduce data transfer compared with downloading the entire file.

    See an HTTP parsing example · Explore the S3 adapter

    03

    Improve file detection in the wider ecosystem

    file-type identifies file formats from their contents. I help maintain this library, which uses the same tokenizer infrastructure and connects this work to applications beyond audio.

    My file-type extensions add detection for audio and video, compound documents, PDF-based formats, and XML-based formats. I also contribute to is-svg.

    Explore file-type extensions · View the maintainers · View my file-type contributions

    Keep the foundations growing

    Help sustain the libraries you build on

    A useful library needs continued care after its first release: investigating files that expose parsing bugs, adding regression coverage, keeping dependencies and runtime support current, and reviewing fixes and contributions.

    Sponsorship helps me make time for that work across these shared libraries. A fix in a parser or tokenizer can benefit the applications that depend on it.

    If your team relies on these projects, sponsoring their maintenance is a practical way to support the foundations of your own software. Individual support is welcome too.

    Bug reports, reproducible sample files, documentation improvements, and pull requests also help these projects move forward. Thank you to everyone who contributes.

    The wider toolkit

    More of my work

    These projects extend the same foundations into streaming audio, metadata services, file detection, and everyday development tools.

    Audio and music tools

    music-metadata
    extracts tags, cover art, duration, and technical audio information from formats including MP3, FLAC, MP4, Ogg, and WAV. It works with files and streams in Node.js and browser applications, giving developers one API across different formats and data sources.
    Audio Tag Analyzer
    Inspect audio metadata and artwork in your browser, without uploading your files.
    @music-metadata/icy
    Decode Icecast and Shoutcast metadata from streaming audio using Web Streams.
    ICY Radio Stream Player
    Demonstrate live radio playback and metadata using the audio libraries together.
    musicbrainz-api
    Read and submit music metadata through the MusicBrainz API.
    listFix()
    Repair local playlists when the files they reference have moved.
    Lizzy
    Parse multimedia playlists in a range of formats.

    Binary data and streaming

    strtok3
    provides a shared way to read binary data. With @tokenizer/http and @tokenizer/s3, parsers can read selected portions of remote files using range requests.
    @tokenizer/http
    Read selected portions of remote files over HTTP using range requests.
    @tokenizer/s3
    Read and tokenize selected portions of objects stored in Amazon S3.
    @tokenizer/range
    Adapt tokenizer reads to HTTP range requests.
    @tokenizer/inflate
    Extract portions of compressed data through the tokenizer framework.
    @borewit/text-codec
    Encode and decode text in environments that need a TextEncoder/TextDecoder polyfill.
    win-guid
    Read GUIDs in the Windows binary layout.
    read-next-line
    Read lines of text from a Node.js readable stream.
    node-readable-to-web-readable-stream
    Convert Node.js readable streams to Web Streams.
    readable-web-to-node-stream
    Convert Web Streams to Node.js readable streams.

    File detection extensions

    @file-type/av
    Detect audio and video file types.
    @file-type/cfbf
    Detect formats based on Compound File Binary Format, also known as OLE compound documents.
    @file-type/pdf
    Detect PDF-based formats, including Adobe Illustrator.
    @file-type/xml
    Detect XML-based formats such as SVG, KML, and XHTML; also provides the detection engine for is-svg.

    Development utilities

    load-esm
    Import ESM packages dynamically from CommonJS TypeScript projects.
    rate-limit-threshold
    Limit calls within a given period.
    @borewit/async-queue
    Consume incoming events through asynchronous iteration.
    bounded-queue
    Coordinate asynchronous producers and consumers.
    svg-sanitizer
    Clean SVG files by removing scripts and blocking external resource loading.

    Shared maintenance and contributions

    file-type
    identifies file formats from their contents. I help maintain this library, which uses the same tokenizer infrastructure and connects this work to applications beyond audio.
    is-svg
    Check whether a string is SVG. I contribute to this project.
    Explore all repositories