9 Commits

Author SHA1 Message Date
Chrysostomos Nanakos
f1878d6aaa
chore: orc support
Refactor public API to use `var openArray[seq[byte]]` instead of raw
pointers for ORC compatibility.

The previous API required callers to extract raw pointers from seqs
before calling encode/decode. With refc and shallowCopy, reference
counting kept buffers alive. ORC doesn't track raw pointers and can
reallocate seq buffers at yield points, leaving pointers dangling.

The new openArray API borrows data safely.

Also updates CI to Nim 2.2.4 and bumps version to 0.2.0.

Part of https://github.com/logos-storage/nim-leopard/issues/24

Signed-off-by: Chrysostomos Nanakos <chris@include.gr>
2025-12-24 01:43:25 +02:00
Jacek Sieka
27941e9c59
chore: drop upraises 2025-12-10 22:31:55 +01:00
munna0908
03f71498fc
feat: enhance encode/decode procs for multithreading support (#20)
* update encode proc signature

* add new decode proc

* remove old encode/decode procs

* fix tests
2025-02-11 11:14:18 -08:00
Ben Bierens
3e09d8113f
GCC-14 (#15)
* disables pointer-compatibility error in gcc-14

* Replaces no-error passC with importc pointer type definition

* simplifies CI

* fix attempt for leopard on mm:orc

* removes touch in ci

* removes showing of symbols

* attempt to fix macos if

* sets runners in ci

* sets shell to bash in ci

* removes cmake compiler flags from ci

* Removes conditional block for macos in ci
2024-08-28 09:30:34 +02:00
Ben Bierens
1a6f2ab725
enables stylecheck (#10)
* enables stylecheck

* attempt to fix mac build
2023-03-09 11:03:39 +01:00
Mark Spanbroek
0bc64c4829 [build] Only build libleopard
Do not build `bench_leopard` and `experiment_leopard`.
2022-11-14 10:39:02 +01:00
Csaba Kiraly
e0e642e978
avoid X86 specific code on ARM
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2022-05-17 15:15:01 +02:00
Dmitriy Ryajov
41cd86df5b
High level wrapper (#3)
* initial implementation and tests

* [wip] refactor checking of RS code validity

* [wip] point GHA badge link to main branch instead of initial_impl

* [wip] delete leftover echo at bottom of test_leopard.nim

* [wip] add basic usage info to README

* [wip] more basic info added to README re: requirements, installation, usage

* [wip] add config.nims with --tlsEmulation:off to check if it helps with perf on Windows

* [wip] use `object` instead of `object of CatchableError` for LeopardError

workaround for edge case encountered in context of nimbus-build-system project

* [wip] clarify wording in README re: stability

* [wip] can use `object of CatchableError` for LeopardError with workaround

* Initial implementation

* make Leo a case object

* initial test

* cleanup

* remove echo

* use `func` where possible

* comments, misc

* make construction more convenient

* add more tests

* more tests

* unused warnings

* remove sideeffects pragma

* fix importc pragma on unix

* fix windows build

* fix ci

* better warning

* adding more comprehensive tests

* moar tests

* add TODO for usage

* Update leopard/leopard.nim

Co-authored-by: Michael Bradley <michaelsbradleyjr@gmail.com>

* Update leopard/wrapper.nim

Co-authored-by: Michael Bradley <michaelsbradleyjr@gmail.com>

* add tests to reuse same encoder/decoder

* check that parity and data buffers are < 65536

* test that data+parity isn't > 65536

Co-authored-by: Michael Bradley, Jr <michaelsbradleyjr@gmail.com>
2022-03-28 18:42:45 -06:00
Michael Bradley, Jr
5d42ae57ff
first commit 2022-03-07 16:29:47 -06:00