You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would suggest the C API first, because then it can be used with pretty much any language. Maybe https://github.com/lu-zero/cargo-c is a good helper for that, since it add some niceties for making it easier to link with C code (like pkg-config confs).
For sourmash I used https://github.com/getsentry/milksnake, which uses cffi for creating Python bindings. The nice thing is that it can use the header generated by cargo-c and doesn't need other Rust code, like PyO3 would, but PyO3 makes nicer Python APIs by default (the milksnake approach is lower-level).
For now, I feel like adding other language bindings is lower on the priority list than implementing all of the features that we want. However, I've found Rust to work very well with C (I have not tested Rust + Python yet), even when writing the bindings by hand, so this is definitely possible in the future.
Except for Iterator it seems very easy to create a C and Python binding with cbindgen and pyo3. (maybe @luizirber can help use for python binding ?)
The text was updated successfully, but these errors were encountered: