oxc-browserslist 0.17.0

Rust-ported Browserslist for Oxc.
Documentation

Crates.io Docs.rs

MIT licensed Build Status Code Coverage CodSpeed Badge Sponsors Discord chat

oxc-browserslist

Rust port of Browserslist, forked from browserslist-rs.

The original crate did not meet the criteria of oxc, the following changes are made:

  • reduced compilation speed from one minute to a few seconds
  • removed all unnecessary, heavy or slow dependencies: ahash, chrono, either, indexmap, itertools, once_cell, string_cache
  • improved some runtime performance, e.g. improve sort method, precompute versions

Limitation

Only custom usage is not supported: > 0.5% in my stats or cover 99.5% in my stats.

Usage

See docs.rs/oxc-browserslist.

Example

Inspect query result by running the example:

cargo run --example inspect -- <query>

You can also specify additional options, for example:

cargo run --example inspect -- --mobile-to-desktop 'last 2 versions, not dead'

Future Work (Pull request welcome)

  • nom can be replaced by a hand written parser to improve runtime and compilation speed
  • to improve runtime performance, all semver versions with their string representation can be precomputed and code generated - current code is calling parse and to_string on semver versions
  • improve test coverage