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>
* 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
* Use nim v1.6+
nim-stew now requires nim >= 1.6, so nim-leopard must be bumped
* Use macos-13 (intel) runner image instead of arm
* change 1.2 to 1.6 in readme and .nimble
* 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>