dart_rip_log library

A pure Dart library that parses CD rip log files from EAC, XLD, and other rippers into structured, JSON-serialisable quality data.

Entry points:

Quick start

import 'package:dart_rip_log/dart_rip_log.dart';

void main() async {
  final log = await parseRipLogFile('my_rip.log');
  print(log.logFormat);          // RipLogFormat.eac
  print(log.tracks.length);      // number of tracks
  print(isFullyVerified(log));   // true / false
}

See the package README for the full JSON shape, the riplog CLI, and supported log-format details.

Classes

DriveInfo
Drive information extracted from the log header.
RipLog
Top-level result from parsing a complete log file.
RipLogDiff
Structured diff between two parsed rip logs.
RipLogDiffEntry
One change between two RipLogs.
RipLogTrack
Per-track quality data — unified across all log formats.
TrackErrors
Per-track error statistics reported by the ripper.

Enums

AccurateRipStatus
AccurateRip verification result for a single track.
RipLogDiffKind
Classification of a single RipLogDiffEntry.
RipLogFormat
Which CD-ripping tool generated the log.

Functions

compareRipLogs(RipLog left, RipLog right) RipLogDiff
Compare two RipLogs and return a structured RipLogDiff.
detectLogFormat(String content) RipLogFormat
Detect which tool generated content without performing a full parse.
isFullyVerified(RipLog log) bool
Returns true if every track in log was accurately ripped.
parseRipLog(String content) RipLog
Parse a rip log from its string content.
parseRipLogFile(String filePath) Future<RipLog>
Parse a rip log from a file at filePath.
toJson(RipLog log) Map<String, dynamic>
Convert log to a JSON-compatible map.
tracksWithArMismatch(RipLog log) List<RipLogTrack>
Returns the subset of tracks in log whose AccurateRip status is AccurateRipStatus.mismatch.
tracksWithErrors(RipLog log) List<RipLogTrack>
Returns the subset of tracks in log that have any non-zero error counts.