typelevel/cats-parse
61.9
Adequate · 20 September 2026
4.9k
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is cats-parse, a functional parser combinator library for Scala that provides foundational parsing types and combinators for structured data. It supports cross-compilation across JVM, JavaScript, and Native platforms, offering specialized utilities for efficient bit-set operations and string matching. The library includes built-in parsers for common formats such as JSON, Semantic Versioning, and ABNF, along with comprehensive testing and benchmarking infrastructure.
Features
Added JSON benchmark fixtures
New JSON resource files (bar.json, bla2.json, bla25.json) have been added to the bench module's resources directory to serve as input data for JSON parsing benchmarks.
bench · high confidence
Initial import of the cats-parse library
This change introduces the core components of the cats-parse library, a functional parser combinator library for Scala. It adds the foundational \Parser\ and \Parser0\ types along with essential combinators, and provides utility classes for tracking parsing state such as \Caret\ for line/column offsets and \LocationMap\ for converting offsets to human-readable positions. The import also includes specific parsers for common data formats, including JSON strings and numbers, Semantic Versioning (SemVer) strings, and the common rules defined in RFC 5234 (ABNF). Additionally, it brings in internal optimization structures like \RadixNode\ for efficient string matching and \Accumulator\ types to support efficient result collection during parsing.
core/shared/src/main · high confidence
Initial project setup and formatting configuration
The repository has been initialized with core configuration files, including a \.scalafmt.conf\ that sets the formatting version to 3.11.5 and configures the Scala 2.13 dialect as the default (with Scala 3 support for \scala-3\ source directories). Additional setup includes a \.gitignore\ tailored for sbt and IDEs, a \PULL\_REQUEST\_TEMPLATE.md\ reminding contributors to run \sbt prePR\, and a \Release.md\ outlining the git-tag-based release process via GitHub Actions.
(repo-wide) · high confidence
Behavioural changes
Added native-specific BitSet utility implementation
A new \BitSet.scala\ file has been added to the \core/native\ source directory, providing a \BitSetUtil\ object that extends \BitSetUtilCompat\ with specific boolean flags. This change enables the parser library to compile and function correctly on Scala Native targets by supplying the necessary bit-set utilities for that platform.
core/native · high confidence
Introduces JavaScript-specific BitSet implementation
A new \BitSetUtil\ object has been added to the \core/js\ module, providing a JavaScript-specific implementation of the \BitSetUtilCompat\ trait. This change enables the parser library to utilize optimized bit-set operations on the JavaScript platform, supporting features such as fast character range checks and union iterators.
core/js · high confidence
JVM-specific BitSet utility implementation
The JVM module now includes a dedicated BitSet utility object that delegates to a compatibility layer with specific platform flags. This change provides a concrete implementation for bit-set operations on the JVM platform, distinct from other targets.
core/jvm/src/main · medium confidence
Test coverage
Added JVM-specific property tests for JSON number and string parsing; Added comprehensive test coverage for core parsing components.
Dependencies
Initial release of cats-parse 1.1 with Scala 3.3.6 support
This entry introduces the initial build configuration for the cats-parse library, establishing version 1.1 as the base release. It configures cross-compilation for Scala 2.12.21, 2.13.16, and Scala 3.3.6 across JVM, JS, and Native platforms. The build includes a core library module depending on Cats and Munit for testing, a benchmarking module for performance comparison, and a documentation site. It also sets up binary compatibility checks (MiMa) against the 0.3.x series and integrates GitHub Actions for coverage reporting.
(dependencies) · high confidence
Update build infrastructure to sbt 1.12.4 and Scala 3 tooling
The project's build system has been upgraded to sbt version 1.12.4, with the plugin configuration in project/plugins.sbt now including sbt-scala-native 0.5.12, sbt-scalajs 1.20.1, sbt-scoverage 2.4.4, and sbt-typelevel 0.8.2. Additionally, the dependency definitions in project/Dependencies.scala have been updated to use cats-core 2.13.0, munit 1.2.4, fastparse 3.1.1, and jawn-ast 1.6.0, while MimaExclusionRules.scala has been added to handle binary compatibility issues related to changes in the cats.parse library.
project · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 62.
Lenses
- Code Health 93
- Architecture 100
- Maturity 52
- Readiness 67
- Security 62
Changes since last survey
- 300 commits — 295 feature/other, 5 fixes
By area
- project/plugins.sbt — 92 commits
- (root) — 83 commits
- project/build.properties — 38 commits
- core/shared — 31 commits
- project/Dependencies.scala — 30 commits
- .github/workflows — 19 commits
- docs/index.md — 6 commits
- docs/src — 1 commit
Notable commits
- fix: Fix API docs url with the latest version (#491)
- fix: Fix RadixNode.matchAt (#362)
- fix: Fix tlBaseVersion (#632)
- fix: Typo fixed in index.md (#594)
- fix: fix Caret arguments ordering (#313)
- change: Add Align instance (#643)
- change: Add DefaultParser and DefaultParser0 typeclasses (#577)
- change: Add fromCharMap and fromStringMap (#373)
- change: Add json string parsing (#438)
- change: Add missing newline in with1 documentation (#608)
- change: Add scala3 mima rules for RadixNode (#361)
- change: Add withString (#436)
- change: Bump Readme versions and add some tests (#314)
- change: Bump base version to 1.0 (#555)
- change: Bump docs version to 1.0.0 (#623)
- change: Cross-build for Native (#426)
- change: Drop scala 2.11 (#644)
- change: Fast charIn for ranges like 'A' to 'Z' (#360)
- change: Fix typo (#336)
- change: Fix typo in caret scaladoc (#744)
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
typelevel/cats-parse was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit adbad6da7af12e989e1afef820bd1da8c0db70d1 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.