Skip to content

Releases: nyarime/GoFEC

v2.0.0 — GF(2¹⁶) + Leopard-RS + RaptorQ fountain

Choose a tag to compare

@nyarime nyarime released this 12 Sep 08:43
68574ff

GoFEC v2.0.0

BREAKING: module path is now github.com/nyarime/gofec/v2.

go get github.com/nyarime/gofec/v2@v2.0.0

Highlights

  • Public gf65536 — GF(2¹⁶) field with amd64 SIMD region multiply
  • leopard.Codec — high-level Reed–Solomon API (up to 65536 shards, O(n log n) FFT)
  • raptorq.GenerateRepair — rateless / fountain parity extension
  • Root factory helpers + Version = "2.0.0"
  • Still pure Go, no CGO (RaptorQ / LDPC / Leopard)

Migrate from v1

- import "github.com/nyarime/gofec/raptorq"
+ import "github.com/nyarime/gofec/v2/raptorq"

NRUP already consumes this module as github.com/nyarime/gofec/v2 v2.0.0.

Verify

go test github.com/nyarime/gofec/v2/...

v1.4.2 — cross-architecture build fix

Choose a tag to compare

@nyarime nyarime released this 24 Aug 08:19
7d48696

internal/xor/xor.go declared Bytes with no body and no build constraint, while xor_generic.go provides the same function under !amd64 && !arm64. Every other architecture compiled both declarations and failed with Bytes redeclared in this block, which took the whole module down with it.

The assembly declaration is now constrained to the architectures whose .s files actually define the symbol, and the package comment moved to doc.go so it survives on the generic path.

Builds verified on 386, riscv64, ppc64le, s390x and mips64le, in addition to amd64 and arm64. No behaviour change on the two architectures that already worked — they use the same assembly as before.

Known issue, unrelated to this release: TestLeopardLarge fails on main and has done since v1.4.0 (shard 0 mismatch at byte 0 in the GF(2^16) Leopard-RS decode path). raptorq, ldpc, gf256 and gf65536 all pass.

v1.4.1: Leopard-RS + GF(2^16) + Multi-threaded FFT

Choose a tag to compare

@nyarime nyarime released this 27 Apr 10:05

GoFEC v1.4.1 — NyaEngine Edition

New: Leopard-RS Erasure Coding (65536 shards)

  • O(n log n) encoding/decoding via additive FFT over GF(2^16)
  • Max 65536 shards (vs 256 in RS GF(2^8))
  • Multi-threaded butterfly operations (47-67x speedup)

New: GF(2^16) Finite Field

  • 65536-element field with log/exp table acceleration
  • Optimized MulAddRegion with precomputed tables

Performance (EPYC 9V33X 96-Core)

Config Encode Decode
100+10 439 MB/s 72 MB/s
1000+100 347 MB/s 90 MB/s
10000+1000 254 MB/s —

Full Stack

  • RS GF(2^8): 256 shards, AVX2/GFNI (87 GB/s)
  • Leopard GF(2^16): 65536 shards, O(n log n) NEW
  • LDPC: sparse matrix, near-Shannon
  • RaptorQ: fountain code, RFC 6330

Go community first: LDPC, RaptorQ, Leopard-RS, GFNI acceleration

v1.4.0: GF(2^16) + Leopard-RS Foundation

Choose a tag to compare

@nyarime nyarime released this 27 Apr 10:05

GoFEC v1.4.0

New: GF(2^16) Finite Field (internal/gf65536)

  • 65536-element field, polynomial 0x1002B, generator 3
  • Mul/Div/Inv via log/exp tables
  • MulAddRegion for bulk operations

New: Leopard-RS (leopard/)

  • Additive FFT (Walsh-Hadamard) over GF(2^16)
  • O(n log n) encode/decode
  • Max 65536 shards
  • Cantor basis with precomputed skew factors

Tested: 4+2, 4+4, 100+50 shard configurations

v1.3.0

Choose a tag to compare

@nyarime nyarime released this 21 Apr 18:48
  • AVX512 GFNI 加速已验证(AMD EPYC 9654)
  • GF(256) GFNI 吞吐:87 GB/s(4KB region)
  • RaptorQ 编码吞吐:2.06 GB/s(32KB)
  • LDPC 编码吞吐:286 MB/s
  • SIMD 自动调度:AVX512 GFNI > AVX2 > SSE4.1 > NEON > scalar
  • 全量测试通过

v1.2.0

Choose a tag to compare

@nyarime nyarime released this 21 Apr 18:46
  • GFNI MulRegion 实现(无 XOR),SSE4.1 标志位
  • CPU 特性检测增强(SSE4.1/AVX2/AVX-512 GFNI/NEON/SVE 自动调度)
  • DecodeWithErasures:完整高斯消元纠删恢复
  • 性能优化:Bitset 替代 map[int]bool

v1.1.1

Choose a tag to compare

@nyarime nyarime released this 15 Apr 16:55
  • 专业README (中文+英文双版本)
  • RaptorQ vs LDPC选择指南
  • 完整使用文档、性能数据、架构说明

推荐版本,包含完整文档

v1.1.0

Choose a tag to compare

@nyarime nyarime released this 15 Apr 16:55

仓库重命名 FEC-Go → GoFEC

包含v1.0.0全部特性

v1.0.0

Choose a tag to compare

@nyarime nyarime released this 15 Apr 16:55

GoFEC首个正式版本

  • LDPC低密度校验码 (PEG矩阵 + BP解码)
  • RaptorQ喷泉码 (RFC 6330核心, 1-6块丢失恢复)
  • GF(256)有限域 (Log/Exp查表 + 预计算Split Tables)
  • AVX2 XOR加速 (31.6 GB/s)
  • AVX2 VPSHUFB GF(256) (15 GB/s)
  • ARM64 NEON XOR + GF(256) VTBL
  • AVX512 GFNI运行时检测
  • 统一SIMD Dispatch

性能:

  • RaptorQ 32KB: 41μs
  • LDPC: 18μs编码
  • GF(256) MulAdd: 15 GB/s
  • XOR: 31.6 GB/s