Download Latest Version v0.2.0 -- Multi-Language Ports source code.zip (101.9 kB)
Email in envelope

Get an email when there's a new version of LombokECC

Home / v0.2.0
Name Modified Size InfoDownloads / Week
Parent folder
CHANGELOG.md 2026-08-29 3.7 kB
LICENSE 2026-08-29 10.8 kB
README.md 2026-08-29 13.8 kB
v0.2.0 -- Multi-Language Ports source code.tar.gz 2026-08-29 72.4 kB
v0.2.0 -- Multi-Language Ports source code.zip 2026-08-29 101.9 kB
Totals: 5 Items   202.6 kB 1

LombokECC

Reed-Solomon error-correction codes over GF(256) — RS(255, 239), t = 8. Zero-dependency TypeScript library with ports in PHP, Python, Go, Rust, and C++. Licensed Apache-2.0.


GitHub

Stars Forks Issues Pull Requests Release License Last Commit Repo Size Downloads Latest Downloads

npm

npm version npm downloads npm total downloads

GitHub Packages

npm GPR

Packagist

Packagist version Packagist downloads

PyPI

PyPI version PyPI downloads

Quality

CI Tests Mutations Vectors Zero deps TypeScript Ports Conventional Commits

SourceForge

SF Downloads SF Monthly SF Weekly SourceForge

Community

Contributors Sponsors PRs Welcome

Lombok Ecosystem

LombokClarion LombokCSS LombokCharts LombokQRCode LombokTableSheet LombokAnimate LombokECC LombokPDF LombokUnram


Changes from v0.1.0

  • Multi-language ports added (PHP, Python, Go, Rust, C++)
  • Test vectors v1 (42 cases, JSON + flat text)
  • Root-level composer.json for Packagist auto-discovery
  • Root-level pyproject.toml for PyPI builds
  • ArticleEccCodec prototype (phase6)
  • Each port has its own README with usage examples

Parameters

Parameter Value
Codeword length (n) 255
Message length (k) 239
Parity bytes 16
Correctable errors (t) 8 bytes per block
Field GF(256), primitive polynomial 0x11D

Ports

All ports validate against the same test vector set (42 test cases).

Language Registry Package Install Status
TypeScript npm lombokecc npm install lombokecc ✅ 42/42
TypeScript GPR @codinglombok/lombokecc npm install @codinglombok/lombokecc ✅ 42/42
PHP Packagist codinglombok/lombokecc composer require codinglombok/lombokecc ✅ 42/42
Python PyPI lombokecc pip install lombokecc ✅ 42/42
Go Go LombokECC-go go get github.com/codinglombok/LombokECC-go ✅ 42/42
Rust crates.io lombokecc cargo add lombokecc ✅ 42/42
C++ Header-only Copy ports/cpp/include/lombok_ecc.hpp ✅ 42/42

Installation & Usage

TypeScript / JavaScript

npm install lombokecc
import { ReedSolomon } from 'lombokecc';
const rs = new ReedSolomon(255, 239);
const codeword = rs.encode(new Uint8Array([1, 2, 3, 4, 5]));
const decoded  = rs.decode(codeword);

PHP

composer require codinglombok/lombokecc
use CodingLombok\LombokEcc\ReedSolomon;
$rs = new ReedSolomon(255, 239);
$codeword = $rs->encode([1, 2, 3, 4, 5]);
$decoded  = $rs->decode($codeword);

Python

pip install lombokecc
from lombok_ecc import ReedSolomon
rs = ReedSolomon(255, 239)
codeword = rs.encode(bytes([1, 2, 3, 4, 5]))
decoded  = rs.decode(codeword)

Go

go get github.com/codinglombok/LombokECC-go
rs := lombokecc.New(255, 239)
codeword := rs.Encode([]byte{1, 2, 3, 4, 5})
decoded, _ := rs.Decode(codeword)

Rust

cargo add lombokecc
let rs = lombokecc::ReedSolomon::new(255, 239);
let codeword = rs.encode(&[1, 2, 3, 4, 5]);
let decoded = rs.decode(&codeword).unwrap();

C++

#include "lombok_ecc.hpp"
auto rs = lombokecc::ReedSolomon(255, 239);
auto codeword = rs.encode({1, 2, 3, 4, 5});
auto decoded = rs.decode(codeword);

Testing

# TypeScript
npm ci && npm run build && npm run test:full
bash mutate.sh            # mutation testing

# All ports
cd ports && bash run-all.sh

Project structure

├── package.json             ← npm (lombokecc)
├── composer.json            ← Packagist (codinglombok/lombokecc)
├── pyproject.toml           ← PyPI (lombokecc)
├── gf256.ts                 # GF(256) field arithmetic
├── reed-solomon.ts          # RS encoder + decoder
├── test-*.ts                # 5 test suites
├── bench.ts                 # benchmark
├── mutate.sh                # mutation testing
├── .github/workflows/
│   ├── ci.yml               # test + mutation + packaging + benchmark
│   └── publish-packages.yml # auto-publish on release
└── ports/
    ├── php/                 # Packagist (composer.json at root)
    ├── python/              # PyPI (pyproject.toml at root)
    ├── go/                  # Go module
    ├── rust/                # crates.io
    ├── cpp/                 # header-only
    └── vectors/             # 42 test cases (JSON + flat text)

License

Apache-2.0 — see LICENSE


Author: codinglombok Repository: github.com/codinglombok/LombokECC

Source: README.md, updated 2026-08-29