Skip to main content

reed_solomon_codec 2.0.0 copy "reed_solomon_codec: ^2.0.0" to clipboard
reed_solomon_codec: ^2.0.0 copied to clipboard

Pure Dart Reed-Solomon encoder/decoder over GF(2^m), with full errors-and-erasures decoding.

example/main.dart

// ignore_for_file: avoid_print

import 'package:reed_solomon_codec/reed_solomon_codec.dart';

void main() {
  final codec = ReedSolomonCodec.fromFieldParameters(
    symbolSizeInBits: 8,
    primitivePolynomial: 0x11D,
    primitiveElement: 2,
    errorCorrectionSymbols: 2,
  );

  const message = <int>[1, 2, 3, 4];
  final codeword = codec.encode(message);

  print('Message:  $message');
  print('Codeword: $codeword (${codeword.length} symbols)');

  final clean = codec.decode(codeword);
  print(
    'Decode (clean): ${clean.decodedData}, '
    'wasAlreadyValid=${clean.wasAlreadyValid}',
  );

  final corrupted = List<int>.from(codeword);
  corrupted[1] ^= 0xFF;
  print('After flipping bits at index 1: isValid=${codec.isValid(corrupted)}');

  final recovered = codec.decode(corrupted);
  print('Decode (1 unknown error): ${recovered.decodedData}');
  print('Corrected positions: ${recovered.unknownErrorPositions}');

  final erased = List<int>.from(codeword);
  erased[0] = 0;
  final fromErasure = codec.decode(
    erased,
    erasurePositions: <int>[0],
  );
  print('Decode (1 known erasure at 0): ${fromErasure.decodedData}');
}
1
likes
160
points
421
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Pure Dart Reed-Solomon encoder/decoder over GF(2^m), with full errors-and-erasures decoding.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

finite_field_math

More

Packages that depend on reed_solomon_codec