readcon 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. readcon-0.2.0/.github/workflows/bench.yml +46 -0
  2. readcon-0.2.0/.github/workflows/build_test.yml +52 -0
  3. readcon-0.2.0/.github/workflows/ci_docs.yml +46 -0
  4. readcon-0.2.0/.github/workflows/coverage.yml +73 -0
  5. readcon-0.2.0/.github/workflows/lint.yml +21 -0
  6. readcon-0.2.0/.github/workflows/python_wheels.yml +103 -0
  7. readcon-0.2.0/.gitignore +169 -0
  8. readcon-0.2.0/CHANGELOG.md +152 -0
  9. readcon-0.2.0/CMakeLists.txt +44 -0
  10. readcon-0.2.0/CODEOWNERS +13 -0
  11. readcon-0.2.0/CODE_OF_CONDUCT.md +132 -0
  12. readcon-0.2.0/Cargo.lock +1285 -0
  13. readcon-0.2.0/Cargo.toml +52 -0
  14. readcon-0.2.0/LICENSE +19 -0
  15. readcon-0.2.0/PKG-INFO +169 -0
  16. readcon-0.2.0/README.md +147 -0
  17. readcon-0.2.0/benches/iterator_bench.rs +161 -0
  18. readcon-0.2.0/build.rs +18 -0
  19. readcon-0.2.0/cbindgen.toml +22 -0
  20. readcon-0.2.0/cog.toml +37 -0
  21. readcon-0.2.0/dist-workspace.toml +13 -0
  22. readcon-0.2.0/docs/export.el +21 -0
  23. readcon-0.2.0/docs/orgmode/architecture.org +70 -0
  24. readcon-0.2.0/docs/orgmode/bindings.org +149 -0
  25. readcon-0.2.0/docs/orgmode/changelog.org +4 -0
  26. readcon-0.2.0/docs/orgmode/contributing.org +217 -0
  27. readcon-0.2.0/docs/orgmode/index.org +18 -0
  28. readcon-0.2.0/docs/orgmode/rpc.org +57 -0
  29. readcon-0.2.0/docs/orgmode/spec.org +92 -0
  30. readcon-0.2.0/docs/orgmode/tutorials.org +371 -0
  31. readcon-0.2.0/docs/source/conf.py +23 -0
  32. readcon-0.2.0/examples/c_api_sample.c +172 -0
  33. readcon-0.2.0/examples/cpp_api_sample.cpp +125 -0
  34. readcon-0.2.0/examples/meson.build +29 -0
  35. readcon-0.2.0/examples/rust_usage.rs +78 -0
  36. readcon-0.2.0/include/readcon-core.h +171 -0
  37. readcon-0.2.0/include/readcon-core.hpp +352 -0
  38. readcon-0.2.0/julia/ReadCon/Project.toml +14 -0
  39. readcon-0.2.0/julia/ReadCon/src/ReadCon.jl +8 -0
  40. readcon-0.2.0/julia/ReadCon/src/types.jl +56 -0
  41. readcon-0.2.0/julia/ReadCon/src/wrapper.jl +140 -0
  42. readcon-0.2.0/julia/ReadCon/test/runtests.jl +50 -0
  43. readcon-0.2.0/meson.build +128 -0
  44. readcon-0.2.0/meson_options.txt +12 -0
  45. readcon-0.2.0/pixi.lock +4555 -0
  46. readcon-0.2.0/pixi.toml +36 -0
  47. readcon-0.2.0/pyproject.toml +31 -0
  48. readcon-0.2.0/readme_src.org +76 -0
  49. readcon-0.2.0/resources/test/cuh2.con +231 -0
  50. readcon-0.2.0/resources/test/sulfolene.con +30 -0
  51. readcon-0.2.0/resources/test/tiny_cuh2.con +17 -0
  52. readcon-0.2.0/resources/test/tiny_cuh2.convel +26 -0
  53. readcon-0.2.0/resources/test/tiny_multi_cuh2.con +34 -0
  54. readcon-0.2.0/resources/test/tiny_multi_cuh2.convel +52 -0
  55. readcon-0.2.0/schema/ReadCon.capnp +44 -0
  56. readcon-0.2.0/scripts/org_to_md.sh +57 -0
  57. readcon-0.2.0/src/error.rs +47 -0
  58. readcon-0.2.0/src/ffi.rs +337 -0
  59. readcon-0.2.0/src/helpers.rs +197 -0
  60. readcon-0.2.0/src/iterators.rs +270 -0
  61. readcon-0.2.0/src/lib.rs +13 -0
  62. readcon-0.2.0/src/main.rs +77 -0
  63. readcon-0.2.0/src/parser.rs +584 -0
  64. readcon-0.2.0/src/python.rs +228 -0
  65. readcon-0.2.0/src/rpc/client.rs +95 -0
  66. readcon-0.2.0/src/rpc/mod.rs +6 -0
  67. readcon-0.2.0/src/rpc/server.rs +206 -0
  68. readcon-0.2.0/src/types.rs +94 -0
  69. readcon-0.2.0/src/writer.rs +162 -0
  70. readcon-0.2.0/tests/common/mod.rs +13 -0
  71. readcon-0.2.0/tests/convelwriter.rs +68 -0
  72. readcon-0.2.0/tests/conwriter.rs +42 -0
  73. readcon-0.2.0/tests/parsecon.rs +155 -0
  74. readcon-0.2.0/tests/parseconvel.rs +115 -0
  75. readcon-0.2.0/tests/python/test_readcon.py +108 -0
  76. readcon-0.2.0/valgrind.supp +46 -0
@@ -0,0 +1,46 @@
1
+ name: Criterion benchmarks
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ concurrency:
8
+ group: critbench-${{ github.ref }}
9
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
10
+
11
+ jobs:
12
+ critbench:
13
+ # This job will only run if the commit message (on push) or PR title
14
+ # (on pull_request) contains the string "[BENCH]".
15
+ if: |
16
+ (github.event_name == 'push' && contains(join(github.event.commits.*.message), '[BENCH]')) ||
17
+ (github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[BENCH]'))
18
+ runs-on: ubuntu-22.04
19
+ name: Run benchmarks
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - name: Install Rust toolchain
25
+ uses: actions-rs/toolchain@v1
26
+ with:
27
+ toolchain: stable
28
+ components: llvm-tools-preview
29
+ override: true
30
+
31
+ - name: setup sccache
32
+ uses: mozilla-actions/sccache-action@v0.0.9
33
+ with:
34
+ version: "v0.10.0"
35
+
36
+ - name: setup sccache environnement variables
37
+ run: |
38
+ echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
39
+ echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
40
+ echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
41
+ echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
42
+
43
+ - name: Benchmark
44
+ id: critbench
45
+ run: |
46
+ cargo bench
@@ -0,0 +1,52 @@
1
+ name: Basic tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ concurrency:
9
+ group: btest_rust-${{ github.ref }}
10
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
11
+
12
+ jobs:
13
+ btest_rust:
14
+ runs-on: ubuntu-22.04
15
+ name: Run basic tests and build
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Install Rust toolchain
21
+ uses: actions-rs/toolchain@v1
22
+ with:
23
+ toolchain: stable
24
+ components: llvm-tools-preview
25
+ override: true
26
+
27
+ - name: setup sccache
28
+ uses: mozilla-actions/sccache-action@v0.0.9
29
+ with:
30
+ version: "v0.10.0"
31
+
32
+ - name: setup sccache environnement variables
33
+ run: |
34
+ echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
35
+ echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
36
+ echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
37
+ echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
38
+
39
+ - name: install dependencies
40
+ run: |
41
+ python -m pip install meson
42
+ sudo apt install valgrind
43
+
44
+ - name: Build and test
45
+ id: btest_rust
46
+ run: |
47
+ meson setup bbdir -Dwith_tests=True \
48
+ -Dwith_cpp=True \
49
+ -Dwith_examples=True \
50
+ --buildtype=release
51
+ meson test -C bbdir \
52
+ --wrap="valgrind --leak-check=full --show-leak-kinds=definite,indirect,possible --track-origins=yes --error-exitcode=1 --suppressions=$GITHUB_WORKSPACE/valgrind.supp --gen-suppressions=all"
@@ -0,0 +1,46 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ permissions:
10
+ contents: read
11
+ pages: write
12
+ id-token: write
13
+
14
+ concurrency:
15
+ group: "pages"
16
+ cancel-in-progress: false
17
+
18
+ jobs:
19
+ build:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - uses: prefix-dev/setup-pixi@v0.8.8
25
+ with:
26
+ environments: docs
27
+
28
+ - name: Build documentation
29
+ run: pixi r -e docs docbld
30
+
31
+ - name: Upload artifact
32
+ uses: actions/upload-pages-artifact@v3
33
+ with:
34
+ path: docs/build
35
+
36
+ deploy:
37
+ if: github.ref == 'refs/heads/main'
38
+ needs: build
39
+ runs-on: ubuntu-latest
40
+ environment:
41
+ name: github-pages
42
+ url: ${{ steps.deployment.outputs.page_url }}
43
+ steps:
44
+ - name: Deploy to GitHub Pages
45
+ id: deployment
46
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,73 @@
1
+ name: Coverage
2
+ # Adapted from https://github.com/metatensor/metatensor/pull/939
3
+
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+
9
+ concurrency:
10
+ group: coverage-${{ github.ref }}
11
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
12
+
13
+ jobs:
14
+ coverage:
15
+ runs-on: ubuntu-22.04
16
+ name: collect code coverage
17
+ # Adapted from https://www.scivision.dev/github-actions-latest-llvm-clang-flang/
18
+ strategy:
19
+ matrix:
20
+ llvm-version: [20]
21
+ env:
22
+ CMAKE_C_COMPILER: clang-${{ matrix.llvm-version }}
23
+ CMAKE_CXX_COMPILER: clang++-${{ matrix.llvm-version }}
24
+ CC: clang-${{ matrix.llvm-version }}
25
+ CXX: clang++-${{ matrix.llvm-version }}
26
+
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+
30
+ - name: setup LLVM
31
+ run: |
32
+ wget https://apt.llvm.org/llvm.sh
33
+ chmod +x llvm.sh
34
+ sudo ./llvm.sh ${{ matrix.llvm-version }}
35
+ sudo apt-get update
36
+ sudo apt install --no-install-recommends clang-${{ matrix.llvm-version }}
37
+
38
+ - name: Install Rust toolchain
39
+ uses: actions-rs/toolchain@v1
40
+ with:
41
+ toolchain: stable
42
+ components: llvm-tools-preview
43
+ override: true
44
+
45
+ - name: install cargo-llvm-cov
46
+ uses: taiki-e/install-action@cargo-llvm-cov
47
+
48
+ - name: setup sccache
49
+ uses: mozilla-actions/sccache-action@v0.0.9
50
+ with:
51
+ version: "v0.10.0"
52
+
53
+ - name: setup sccache environnement variables
54
+ run: |
55
+ echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
56
+ echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
57
+ echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
58
+ echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
59
+
60
+ - name: generate rust code coverage
61
+ id: coverage
62
+ run: |
63
+ cargo llvm-cov --all-features --workspace \
64
+ --no-fail-fast --codecov \
65
+ --include-ffi \
66
+ --output-path rust_codecov.json
67
+
68
+ # - name: upload to codecov.io
69
+ # uses: codecov/codecov-action@v5
70
+ # with:
71
+ # fail_ci_if_error: true
72
+ # files: rust_codecov.json
73
+ # token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,21 @@
1
+ name: Lint
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+ jobs:
7
+ lint:
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ with:
13
+ fetch-depth: 0
14
+
15
+ - name: Conventional commits check
16
+ uses: cocogitto/cocogitto-action@v3
17
+
18
+ - name: Audit for large files
19
+ uses: HaoZeke/large-file-auditor@v0.1.0
20
+ with:
21
+ file-size-threshold: "1M"
@@ -0,0 +1,103 @@
1
+ name: Python wheels
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ pull_request:
8
+ paths:
9
+ - 'src/**'
10
+ - 'Cargo.toml'
11
+ - 'Cargo.lock'
12
+ - 'pyproject.toml'
13
+ workflow_dispatch:
14
+
15
+ concurrency:
16
+ group: python-wheels-${{ github.ref }}
17
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ sdist:
24
+ name: Build sdist
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+
29
+ - name: Build sdist
30
+ uses: PyO3/maturin-action@v1
31
+ with:
32
+ command: sdist
33
+ args: --out dist
34
+
35
+ - name: Validate sdist
36
+ run: pipx run twine check --strict dist/*
37
+
38
+ - uses: actions/upload-artifact@v4
39
+ with:
40
+ name: sdist
41
+ path: dist/*.tar.gz
42
+
43
+ wheels:
44
+ name: Build wheels (${{ matrix.os }}, ${{ matrix.target }})
45
+ runs-on: ${{ matrix.os }}
46
+ strategy:
47
+ fail-fast: false
48
+ matrix:
49
+ include:
50
+ - os: ubuntu-latest
51
+ target: x86_64
52
+ - os: ubuntu-latest
53
+ target: aarch64
54
+ - os: macos-13
55
+ target: x86_64
56
+ - os: macos-14
57
+ target: aarch64
58
+ - os: windows-latest
59
+ target: x86_64
60
+ steps:
61
+ - uses: actions/checkout@v4
62
+
63
+ - uses: actions/setup-python@v5
64
+ with:
65
+ python-version: '3.12'
66
+
67
+ - name: Build wheels
68
+ uses: PyO3/maturin-action@v1
69
+ with:
70
+ target: ${{ matrix.target }}
71
+ args: --release --out dist --features python
72
+ manylinux: auto
73
+ # Cross-compile aarch64 on x86_64 runners
74
+ docker-options: ${{ matrix.target == 'aarch64' && '-e JEMALLOC_SYS_WITH_LG_PAGE=16' || '' }}
75
+
76
+ - name: Validate wheels
77
+ if: matrix.target != 'aarch64' || matrix.os != 'ubuntu-latest'
78
+ run: pipx run twine check --strict dist/*
79
+
80
+ - uses: actions/upload-artifact@v4
81
+ with:
82
+ name: wheels-${{ matrix.os }}-${{ matrix.target }}
83
+ path: dist/*.whl
84
+
85
+ publish:
86
+ name: Publish to PyPI
87
+ needs: [sdist, wheels]
88
+ runs-on: ubuntu-latest
89
+ if: startsWith(github.ref, 'refs/tags/v')
90
+ environment:
91
+ name: pypi
92
+ url: https://pypi.org/p/readcon
93
+ permissions:
94
+ id-token: write
95
+ steps:
96
+ - uses: actions/download-artifact@v4
97
+ with:
98
+ pattern: '{sdist,wheels-*}'
99
+ merge-multiple: true
100
+ path: dist/
101
+
102
+ - name: Publish to PyPI
103
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,169 @@
1
+ # Additions
2
+ *.profraw
3
+ compile_commands.json
4
+
5
+ # Documentation build artifacts
6
+ docs/build/
7
+ docs/doctrees/
8
+ docs/source/*.rst
9
+ docs/source/crates/
10
+ docs/source/api/
11
+
12
+ # pixi
13
+ .pixi/
14
+ ###----------------###
15
+ ### TopTal: rust ###
16
+ ###----------------###
17
+
18
+ # Created by https://www.toptal.com/developers/gitignore/api/rust
19
+ # Edit at https://www.toptal.com/developers/gitignore?templates=rust
20
+
21
+ ### Rust ###
22
+ # Generated by Cargo
23
+ # will have compiled files and executables
24
+ debug/
25
+ target/
26
+
27
+ # These are backup files generated by rustfmt
28
+ **/*.rs.bk
29
+
30
+ # MSVC Windows builds of rustc generate these, which store debugging information
31
+ *.pdb
32
+
33
+ # End of https://www.toptal.com/developers/gitignore/api/rust
34
+
35
+ ###-------------------------###
36
+ ### TopTal: rust-analyzer ###
37
+ ###-------------------------###
38
+
39
+ # Created by https://www.toptal.com/developers/gitignore/api/rust-analyzer
40
+ # Edit at https://www.toptal.com/developers/gitignore?templates=rust-analyzer
41
+
42
+ ### rust-analyzer ###
43
+ # Can be generated by other build systems other than cargo (ex: bazelbuild/rust_rules)
44
+ rust-project.json
45
+
46
+ # End of https://www.toptal.com/developers/gitignore/api/rust-analyzer
47
+
48
+ ###----------------###
49
+ ### GitHub: Rust ###
50
+ ###----------------###
51
+
52
+
53
+ # Generated by cargo mutants
54
+ # Contains mutation testing data
55
+ **/mutants.out*/
56
+
57
+ # RustRover
58
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
59
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
60
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
61
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
62
+ #.idea/
63
+
64
+ ###-------------###
65
+ ### TopTal: c ###
66
+ ###-------------###
67
+
68
+ # Created by https://www.toptal.com/developers/gitignore/api/c
69
+ # Edit at https://www.toptal.com/developers/gitignore?templates=c
70
+
71
+ ### C ###
72
+ # Prerequisites
73
+ *.d
74
+
75
+ # Object files
76
+ *.o
77
+ *.ko
78
+ *.obj
79
+ *.elf
80
+
81
+ # Linker output
82
+ *.ilk
83
+ *.map
84
+ *.exp
85
+
86
+ # Precompiled Headers
87
+ *.gch
88
+ *.pch
89
+
90
+ # Libraries
91
+ *.lib
92
+ *.a
93
+ *.la
94
+ *.lo
95
+
96
+ # Shared objects (inc. Windows DLLs)
97
+ *.dll
98
+ *.so
99
+ *.so.*
100
+ *.dylib
101
+
102
+ # Executables
103
+ *.exe
104
+ *.out
105
+ *.app
106
+ *.i*86
107
+ *.x86_64
108
+ *.hex
109
+
110
+ # Debug files
111
+ *.dSYM/
112
+ *.su
113
+ *.idb
114
+
115
+ # Kernel Module Compile Results
116
+ *.mod*
117
+ *.cmd
118
+ .tmp_versions/
119
+ modules.order
120
+ Module.symvers
121
+ Mkfile.old
122
+ dkms.conf
123
+
124
+ # End of https://www.toptal.com/developers/gitignore/api/c
125
+
126
+ ###-------------###
127
+ ### GitHub: C ###
128
+ ###-------------###
129
+
130
+ ###-----------------###
131
+ ### TopTal: macos ###
132
+ ###-----------------###
133
+
134
+ # Created by https://www.toptal.com/developers/gitignore/api/macos
135
+ # Edit at https://www.toptal.com/developers/gitignore?templates=macos
136
+
137
+ ### macOS ###
138
+ # General
139
+ .DS_Store
140
+ .AppleDouble
141
+ .LSOverride
142
+
143
+ # Icon must end with two \r
144
+ Icon
145
+
146
+ # Thumbnails
147
+ ._*
148
+
149
+ # Files that might appear in the root of a volume
150
+ .DocumentRevisions-V100
151
+ .fseventsd
152
+ .Spotlight-V100
153
+ .TemporaryItems
154
+ .Trashes
155
+ .VolumeIcon.icns
156
+ .com.apple.timemachine.donotpresent
157
+
158
+ # Directories potentially created on remote AFP share
159
+ .AppleDB
160
+ .AppleDesktop
161
+ Network Trash Folder
162
+ Temporary Items
163
+ .apdisk
164
+
165
+ ### macOS Patch ###
166
+ # iCloud generated files
167
+ *.icloud
168
+
169
+ # End of https://www.toptal.com/developers/gitignore/api/macos
@@ -0,0 +1,152 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
3
+
4
+ - - -
5
+ ## v0.2.0 - 2025-08-14
6
+ #### Buildsystem
7
+ - Bump for doctests - (bfe85e1) - HaoZeke
8
+ - Enable doctests - (1d79f3a) - HaoZeke
9
+ #### Continuous Integration
10
+ - Try to run benchmarks more - (049c077) - HaoZeke
11
+ #### Documentation
12
+ - Discuss the design.. - (9229f0d) - HaoZeke
13
+ #### Enhancements
14
+ - Single pass for the writer - (ae39401) - HaoZeke
15
+ - More ergonomic without constants for C++ - (7d78227) - HaoZeke
16
+ - Add a cache for better performance - (ec8244d) - HaoZeke
17
+ - Rework to use a writer object - (7029562) - HaoZeke
18
+ - Update to do better on benchmarks - (063a89c) - HaoZeke
19
+ - Setup the C++ API - (c54daf7) - HaoZeke
20
+ - Rework to use opaque pointers - (736bb71) - HaoZeke
21
+ - Rework the FFI for writes - (baae1c8) - HaoZeke
22
+ - Update the C API sample - (5854ccc) - HaoZeke
23
+ - Rework CLI to test things a bit - (a1177b6) - HaoZeke
24
+ - Add a basic writer - (9b825f8) - HaoZeke
25
+ #### Generated
26
+ - Update generated readme - (0277e8b) - HaoZeke
27
+ - Update with a void pointer - (f415740) - HaoZeke
28
+ #### Maintenance
29
+ - Bump versions - (3619311) - HaoZeke
30
+ - Even faster fails - (f729de5) - HaoZeke
31
+ - Cleanup and reduce scope - (a734715) - HaoZeke
32
+ - Cleanup - (3575fcf) - HaoZeke
33
+ - Fail faster for the FFI writer - (a343b86) - HaoZeke
34
+ - Nicer documentation - (84b33db) - HaoZeke
35
+ - Cleanup with constants - (70cad4f) - HaoZeke
36
+ - Minor cleanup - (a9892c6) - HaoZeke
37
+ - Remove dup - (dade44d) - HaoZeke
38
+ - Update format string - (a874a98) - HaoZeke
39
+ - Fix test [BENCH] - (b53fa91) - HaoZeke
40
+ - Use more constants - (973f924) - HaoZeke
41
+ - Update gitig - (64e9a79) - HaoZeke
42
+ - Add an inverse helper for writes - (6170681) - HaoZeke
43
+ - Minor documentation update - (b89931a) - HaoZeke
44
+ #### Tests
45
+ - Add some for writers - (0a59fcd) - HaoZeke
46
+
47
+ - - -
48
+
49
+ ## v0.1.1 - 2025-07-19
50
+ #### Benchmarks
51
+ - Add iterator validation - (9c49c86) - HaoZeke
52
+ #### Bugfixes
53
+ - Fixup a misunderstanding of lifetimes - (038cc5c) - HaoZeke
54
+ #### Buildsystem
55
+ - Use the multi con for examples - (cbdfd6a) - HaoZeke
56
+ #### Continuous Integration
57
+ - Only run benchmarks on request - (222d727) - HaoZeke
58
+ - Kill useless release thing - (96aa79a) - HaoZeke
59
+ - Run benchmarks - (f60a32a) - HaoZeke
60
+ - Use valgrind for gha - (0b2179e) - HaoZeke
61
+ #### Enhancements
62
+ - Demonstrate more of the C++ usage - (f9f838c) - HaoZeke
63
+ - Setup the iterator usage in the C example - (596f65a) - HaoZeke
64
+ - Add a more elegant iterator interface to C++ - (706f14b) - HaoZeke
65
+ - Expose iterators through C interface - (aad794a) - HaoZeke
66
+ - Implement a basic forward skipper - (6e2c8a4) - HaoZeke
67
+ #### Generated
68
+ - Update for criterion - (f1fcfa2) - HaoZeke
69
+ #### Maintenance
70
+ - Fix category tags - (19b7499) - HaoZeke
71
+ - Bump version - (09ae400) - HaoZeke
72
+ - Stop hardcoding paths - (7dbb381) - HaoZeke
73
+ - More sane returns - (66fed6a) - HaoZeke
74
+ - Add a valgrind suppression file - (9ea9c89) - HaoZeke
75
+ - Rework to better explain behavior - (d65634a) - HaoZeke
76
+ - Try to use cargo-dist for generating things - (2ff5ce6) - HaoZeke
77
+ - Fix license and keywords - (aa016b2) - HaoZeke
78
+ #### Tests
79
+ - Add a test for the forward iterator - (0917875) - HaoZeke
80
+
81
+ - - -
82
+
83
+ ## v0.1.0 - 2025-07-19
84
+ #### Buildsystem
85
+ - Remove unstable rust module for stable - (bb7a200) - HaoZeke
86
+ - Let meson run cargo tests too - (99d4362) - HaoZeke
87
+ - Finalize first pass for readcon core - (ddff2bc) - HaoZeke
88
+ #### Continuous Integration
89
+ - Check commits too - (0f636f1) - HaoZeke
90
+ - Setup a basic build and run workflow - (ff9be41) - HaoZeke
91
+ - Import lint and coverage - (36a3a54) - HaoZeke
92
+ #### Data
93
+ - Import test data from readCon - (c5cf85e) - HaoZeke
94
+ #### Documentation
95
+ - Kang from rgpycrumbs - (07435a7) - HaoZeke
96
+ - Minor updates - (f46b178) - HaoZeke
97
+ - Minor updates - (bcd4df7) - HaoZeke
98
+ - Add some more - (6529b22) - HaoZeke
99
+ - Add a bunch - (0ba1212) - HaoZeke
100
+ - Minor note - (1ecc856) - HaoZeke
101
+ - Minor update - (489e9df) - HaoZeke
102
+ - Update readme from readCon - (7751124) - HaoZeke
103
+ #### Enhancements
104
+ - Add and check a C++ interface - (b713997) - HaoZeke
105
+ - Add an example for the C API usage - (94cd71d) - HaoZeke
106
+ - First pass at a baseline C FFI - (577d185) - HaoZeke
107
+ - Start wiring up C connections for readcon - (5f35e54) - HaoZeke
108
+ - Add in first working CLI - (74c25fb) - HaoZeke
109
+ - Add in an iterator - (f7a618d) - HaoZeke
110
+ - Parse a single frame - (d79938a) - HaoZeke
111
+ - Setup the parse header function - (4491175) - HaoZeke
112
+ - Start with error types and a parser - (817e8a8) - HaoZeke
113
+ - Setup some nicer error handling - (f054edd) - HaoZeke
114
+ - Use cog - (7d09a68) - HaoZeke
115
+ #### Generated
116
+ - Update readme - (6524e55) - HaoZeke
117
+ - Vendor a copy of the generated header - (127dd98) - HaoZeke
118
+ #### Maintenance
119
+ - Use a tag prefix - (f1f68af) - HaoZeke
120
+ - Minor renaming - (a871512) - HaoZeke
121
+ - Be safer to ensure null termination - (ca239bc) - HaoZeke
122
+ - Update cog setup - (96cbe69) - HaoZeke
123
+ - Cleanup build for release details - (9af5629) - HaoZeke
124
+ - Additions for coverage - (3d985ee) - HaoZeke
125
+ - Stop using designated initializers for hpp - (9bab1f9) - HaoZeke
126
+ - Finish renaming things - (9e8b5d2) - HaoZeke
127
+ - Saner default settings, switch to C - (c93c562) - HaoZeke
128
+ - Enhance the cbindgen file - (54d2fcb) - HaoZeke
129
+ - Pin a rust version - (d7a6c76) - HaoZeke
130
+ - Silence clippy - (45dbe6c) - HaoZeke
131
+ - More output from the header - (04f0715) - HaoZeke
132
+ - Restructure into a helper and use mass - (eb8d91b) - HaoZeke
133
+ - Add cbindgen as a build dep - (97cb1c9) - HaoZeke
134
+ - Fixup for subproject usage - (699d8df) - HaoZeke
135
+ - Rename project - (2ed99c3) - HaoZeke
136
+ - Actually link up error struct - (94fb2bf) - HaoZeke
137
+ - Remember that usize is used for len() - (e51e012) - HaoZeke
138
+ - Start parsing a bit better - (5de8060) - HaoZeke
139
+ - Start working through lines - (c076bb5) - HaoZeke
140
+ - Add in a quick file reading CLI sample - (37422d4) - HaoZeke
141
+ - Add a test helper - (c896963) - HaoZeke
142
+ - Start with a project configuration - (5730540) - HaoZeke
143
+ - Initialize with cargo new - (059e4eb) - HaoZeke
144
+ #### Tests
145
+ - Update for multi con reads - (6590e83) - HaoZeke
146
+ - Add more unit tests - (7cd595d) - HaoZeke
147
+ - Add a more interesting test - (b4c0049) - HaoZeke
148
+ - Start with a simple test - (fbd71c7) - HaoZeke
149
+
150
+ - - -
151
+
152
+ Changelog generated by [cocogitto](https://github.com/cocogitto/cocogitto).