Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
0ccadb8
test if CodesHandle is thread safe
Quba1 Sep 8, 2025
0003384
remove mutex
Quba1 Sep 20, 2025
af59b26
update cargo.toml
Quba1 Sep 20, 2025
1cccf4b
fixes for 2024 edition
Quba1 Sep 20, 2025
b6e3d6a
(wip - failing tests) replace log with tracing, trace constructors an…
Quba1 Sep 20, 2025
bf5b7e2
fix criterion
Quba1 Sep 20, 2025
83a87e1
rustfmt
Quba1 Sep 20, 2025
b4adbb0
stop testing destructors with log - instead we have null guards and w…
Quba1 Sep 20, 2025
4f21d45
remove fallible streaming iterator for using keyedmessage with phanto…
Quba1 Sep 20, 2025
9061ce3
start implementing atomic interface
Quba1 Sep 20, 2025
8e06902
read implement in progress
Quba1 Sep 20, 2025
6477aca
implement key_read with macros
Quba1 Sep 21, 2025
8d7789e
implement ndarray for atomic message
Quba1 Sep 21, 2025
ac4f2e6
update eccodes-sys, some fixes to codes_index and start doing docs
Quba1 Sep 21, 2025
0c8051b
(wip) follow ndarray idea
Quba1 Sep 21, 2025
9f87d8d
wip - checkpoint
Quba1 Sep 28, 2025
56a64e4
key read with macros
Quba1 Sep 28, 2025
5046213
cleanup clone
Quba1 Sep 28, 2025
e8d7885
key write with macros
Quba1 Sep 28, 2025
8b02c1d
implement generators
Quba1 Sep 28, 2025
4d69473
fix clone
Quba1 Sep 28, 2025
3004394
fix ndarray
Quba1 Sep 28, 2025
286c6d4
fix visibility and warnings
Quba1 Sep 28, 2025
afa5af0
some doc cleanup
Quba1 Sep 28, 2025
94ee798
fix all warnings in lib except missing docs
Quba1 Sep 28, 2025
af5f4b4
fix test compile errors in codes_handle::mod
Quba1 Sep 28, 2025
f952969
fix more unit tests compile errors
Quba1 Sep 28, 2025
06dff95
fix compile errors in unit tests
Quba1 Sep 28, 2025
90fbfd5
fix compile errors in integration tests
Quba1 Sep 28, 2025
3977b54
small test fixes
Quba1 Nov 9, 2025
453782e
update dependencies
Quba1 Jan 5, 2026
346598a
rename CodesHandle to CodesFile to avoid confusion with eccodes API; …
Quba1 Jan 5, 2026
13f056d
rename Generators to Iters
Quba1 Jan 5, 2026
997ef79
some minor stuff
Quba1 Jan 5, 2026
304b452
minor comment
Quba1 Jan 5, 2026
c304930
fix: gen_codes_handle() should take &mut self as argument, because it…
Quba1 Jan 5, 2026
03ed81a
allow writing only for BufMessages to not suggest persistent grib fil…
Quba1 Jan 5, 2026
6ad607d
Remove experimental indexing feature
Quba1 Jan 8, 2026
01cc62a
Remove unnecessary files and code leftover from indexing feature
Quba1 Jan 8, 2026
a315abc
Fix write tests and add better key write interface
Quba1 Jan 8, 2026
e86529b
Apply clippy fixes
Quba1 Jan 8, 2026
ff85edb
Apply more clippy fixes (mostly in tests)
Quba1 Jan 8, 2026
6ef3aec
Add tests for null catchers in destructors
Quba1 Jan 8, 2026
0af5650
Remove unsafe block from dynamic key read and make the whole function…
Quba1 Jan 8, 2026
1c7cc36
Test writing of more key types
Quba1 Jan 8, 2026
1c9bf89
Add test to checks if incorrect key type is captured
Quba1 Jan 9, 2026
69642f4
Remove unnecessary code repetition in intermediate bindings by conver…
Quba1 Jan 9, 2026
b425c61
remove prints from test
Quba1 Jan 9, 2026
8d442c5
rename message_ndarray feature to ndarray
Quba1 Jan 9, 2026
4af0ae8
move and rename the ndarray module
Quba1 Jan 9, 2026
0fdedd2
Apply clippy fixes and rustfmt
Quba1 Jan 9, 2026
48de739
Increase the chance of clashes in test for arc mesage
Quba1 Jan 9, 2026
d9f1416
Test ArcMessage thread safety more comprehensively
Quba1 Jan 9, 2026
3247433
wip docs
Quba1 Jan 9, 2026
99ac939
finish fixing docs in lib.rs
Quba1 Jan 12, 2026
c515d26
rename codes_handle module to codes_file and finish docs for that module
Quba1 Jan 12, 2026
508adef
finish docs for codes_message module
Quba1 Jan 12, 2026
ed7e594
finish miscellaneous docs
Quba1 Jan 12, 2026
b72f916
finish readme
Quba1 Jan 12, 2026
48e6163
Apply: clippy::ptr_as_ptr, clippy::as_ptr_cast_mut, clippy::redundant…
Quba1 Jan 12, 2026
8365f9c
switch to alpha versioning before final publish
Quba1 Jan 12, 2026
fd9036f
fix and update CI
Quba1 Jan 12, 2026
e24184e
use type inference in casts wherever possible, this also fixes compil…
Quba1 Jan 12, 2026
f07ebe6
rustfmt
Quba1 Jan 12, 2026
b02eca0
update msrv
Quba1 Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 0 additions & 81 deletions .github/workflows/rust-dev.yml

This file was deleted.

100 changes: 48 additions & 52 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: cargo

on:
on:
push:
branches:
- main
Expand All @@ -22,72 +22,68 @@ jobs:
uses: fkirc/skip-duplicate-actions@v5
with:
# All of these options are optional, so you can remove them if you are happy with the defaults
concurrent_skipping: 'same_content_newer'
skip_after_successful_duplicate: 'true'
concurrent_skipping: "same_content_newer"
skip_after_successful_duplicate: "true"
paths_ignore: '["**/README.md"]'
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'

build:

name: Build on Ubuntu
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Prepare environment
run: |
sudo apt-get update
sudo apt-get install clang
sudo apt-get install libclang1
sudo apt-get install libeccodes-dev
rustup update stable
cargo install cargo-criterion
cargo clean
- name: Build with cargo
run: |
cargo build --release --features "experimental_index, message_ndarray"
cargo clean
- name: Test with cargo
run: |
cargo test --no-default-features
cargo test --features "message_ndarray"
cargo test --features "experimental_index"
cargo test --features "experimental_index, message_ndarray"
cargo clean
- name: Benchmark with criterion
run: |
cargo criterion
cargo clean
- uses: actions/checkout@v4
- name: Prepare environment
run: |
sudo apt-get update
sudo apt-get install clang
sudo apt-get install libclang1
sudo apt-get install libeccodes-dev
rustup update stable
cargo install cargo-criterion
cargo clean
- name: Check release build
run: |
cargo build --release --features "ndarray"
- name: Check with clippy
run: |
cargo clippy --features "ndarray" -- -D warnings
- name: Check tests
run: |
cargo test --no-default-features
cargo test --features "ndarray"
- name: Benchmark with criterion
run: |
cargo criterion
cargo clean

build-macos:

name: Build on MacOS
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
runs-on: macos-latest

steps:
- uses: actions/checkout@v4
- name: Prepare environment
run: |
brew install eccodes
rustup update stable
cargo install cargo-criterion
cargo clean
- name: Build with cargo
run: |
cargo build --release --features "experimental_index, message_ndarray"
cargo clean
- name: Test with cargo
run: |
cargo test --no-default-features
cargo test --features "message_ndarray"
cargo test --features "experimental_index"
cargo test --features "experimental_index, message_ndarray"
cargo clean
- name: Benchmark with criterion
run: |
cargo criterion
cargo clean
- uses: actions/checkout@v4
- name: Prepare environment
run: |
brew install eccodes
rustup update stable
cargo install cargo-criterion
cargo clean
- name: Check release build
run: |
cargo build --release --features --features "ndarray"
- name: Check with clippy
run: |
cargo clippy --features "ndarray" -- -D warnings
- name: Check tests
run: |
cargo test --no-default-features
cargo test --features "ndarray"
- name: Benchmark with criterion
run: |
cargo criterion
cargo clean
31 changes: 16 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "eccodes"
description = "Unofficial high-level Rust bindings of the latest ecCodes release"
repository = "https://github.com/ScaleWeather/eccodes"
version = "0.13.4"
version = "0.14.0-alpha.1"
readme = "README.md"
authors = ["Jakub Lewandowski <scaleweather@gmail.com>"]
keywords = ["eccodes", "grib", "bufr", "meteorology", "weather"]
Expand All @@ -14,40 +14,41 @@ categories = [
"science",
]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
exclude = [".github/*", ".vscode/*", ".idea/*", "data/*"]
rust-version = "1.82.0"
rust-version = "1.85.1"

[dependencies]
eccodes-sys = { version = "0.6.0", default-features = false }
eccodes-sys = { version = "0.7.0", default-features = false }
libc = { version = "0.2", default-features = false }
thiserror = { version = "2.0", default-features = false }
log = { version = "0.4", default-features = false }
errno = { version = "0.3", default-features = false }
num-derive = { version = "0.4", default-features = false }
num-traits = { version = "0.2", default-features = false }
fallible-iterator = { version = "0.3", default-features = false }
fallible-streaming-iterator = { version = "0.1.9", default-features = false }
ndarray = { version = "0.16", default-features = false, optional = true, features = [
ndarray = { version = "0.17", default-features = false, optional = true, features = [
"std",
] }
tracing = { version = "0.1", default-features = false, features = [
"std",
"attributes",
"log",
] }

[dev-dependencies]
reqwest = { version = "0.12", features = ["rustls-tls"] }
criterion = "0.5"
testing_logger = "0.1"
rand = "0.8"
reqwest = { version = "0.13", features = ["rustls"] }
criterion = "0.8"
rand = "0.9"
anyhow = { version = "1.0", features = ["backtrace"] }
float-cmp = "0.10"

[features]
default = ["message_ndarray", "experimental_index"]
default = ["ndarray"]
docs = ["eccodes-sys/docs"]
experimental_index = []
message_ndarray = ["dep:ndarray"]
ndarray = ["dep:ndarray"]

[package.metadata.docs.rs]
features = ["docs", "experimental_index", "message_ndarray"]
features = ["docs", "ndarray"]

[[bench]]
name = "main"
Expand Down
Loading
Loading