Rust bindings v1 - #284
Conversation
…xample, because it should be reusable-action)
…is, and move_data
… fdb-sys and fdb crates
tbkr
left a comment
There was a problem hiding this comment.
I looked at this PR and wonder in which state it is. Would it be possible to give me documentation/setup instructions for testing this local?
Also a rebase would be nice (although I appreciate that at the point in time when the PR was opened, this was up-to-date).
Have a look at the pinned versions (and the lack of them by pointing to develop) and update those, as well.
My overall comment would be: Which level of user-interaction are we targeting here? If this is on the C++ level we should keep the functions/objects as close as possible to the C++-API. If we are closer to the Python side, we should streamline things with the already existing PyFDB interface.
Happy to have a chat, if necessary.
| eckit-sys = { git = "ssh://git@github.com/ecmwf/rust-wrappers-playground.git", default-features = false } | ||
| metkit-sys = { git = "ssh://git@github.com/ecmwf/rust-wrappers-playground.git", default-features = false } | ||
| eccodes-sys = { git = "ssh://git@github.com/ecmwf/rust-wrappers-playground.git", default-features = false } | ||
| eckit-sys = { git = "ssh://git@github.com/ecmwf/eckit.git", branch = "develop", default-features = false } |
There was a problem hiding this comment.
We should probably introduce a reproducable build, which pins certain fixed versions. Depending on develop isn't the best idea.
| with: | ||
| manifest-path: rust/Cargo.toml | ||
| features: --features fdb-sys/vendored | ||
| run-doc: false |
There was a problem hiding this comment.
Docs should be build in the cicd, as well to see potential breakage.
| .include(&eccodes_include) | ||
| .include(crate_dir.join("cpp")) | ||
| .include(&out_dir) // for fdb_exceptions.h (generated) | ||
| .flag_if_supported("-std=c++17") |
| .include(format!("{eccodes_root}/include")) | ||
| .include(crate_dir.join("cpp")) | ||
| .include(&out_dir) // for fdb_exceptions.h (generated) | ||
| .flag_if_supported("-std=c++17") |
| /// Generic error from the FDB C++ library. | ||
| #[error("fdb error: {0}")] | ||
| Fdb(String), | ||
| /// Error from eckit/metkit C++ libraries. |
There was a problem hiding this comment.
The old enum was a hand-maintained copy of eckit's exception hierarchy with String payloads. That now comes from eckit::Error, generated at build time from eckit/exception/Exceptions.h, so fdb wraps it as Error::Eckit instead of duplicating it - same variants, but they can't drift from the headers.
…rted("-std=c++17")`
|
Hi @tbkr,
sure, let's discuss it in teams. |
Description
Use eckit high-level crate
Contributor Declaration
By opening this pull request, I affirm the following:
🌈🌦️📖🚧 Documentation FDB 🚧📖🌦️🌈
https://sites.ecmwf.int/docs/fdb/pull-requests/PR-284