Skip to content

manimaran98/b_encode_decode

 
 

Repository files navigation

A Dart library for implementing the encoding and decoding of the Bencode format.

codecov

All codes come from bencode.js, include example and test codes , I just transfer them to Dart code.

Install

In your flutter or dart project add the dependency:

dependencies:
  b_encode_decode: ^1.0.3

Usage

A simple usage example:

Encode

Input parameter can be a String, Number, List, or Map. It will return a encoding bytes list ( Uint8List ).

import 'package:b_encode_decode/b_encode_decode.dart' as Bencode;

main() {
  Bencode.encode("string")         // => "6:string"
  Bencode.encode(123)              // => "i123e"
  Bencode.encode(["str", 123])     // => "l3:stri123ee"
  Bencode.encode({ "key": "value" }) // => "d3:key5:valuee"
}

Decode

Input should be bytes list or String.

import 'package:b_encode_decode/b_encode_decode.dart' as Bencode;

main() {
  var map = Bencode.decode(Uint8List.fromList('d3:key5:valuee'.codeUnits); // => { key: "value" } , the string value is bytes array

  print(map);

Testing

Run tests:

dart test

Run tests with coverage:

dart test --coverage=coverage
dart run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --packages=.dart_tool/package_config.json --report-on=lib

Or use the provided script:

dart tool/coverage.dart

The coverage report will be generated at coverage/lcov.info and can be viewed with tools like genhtml or uploaded to services like Codecov.

Coverage is automatically uploaded to Codecov on every push and pull request via GitHub Actions.

Features and bugs

Please file feature requests and bugs at the issue tracker.

About

A Dart library for implementing the encoding and decoding of the Bencode format.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Dart 100.0%