Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is my first attempt of a proof-of-concept Rust -> C -> Julia roundtrip that was discussed in #381 where I just wrapped the first function calls of the basic example that create a repository and adds some groups. Whoever is interested, maybe you can have a quick look and let me know your opinions. A C header file is generated, but currently the c wrapper in icechunk-julia is manually generated. Of course, if one wants to roll out a full c lib for the storage interface there would be a few design decisions to make. The most burning questions I would have are the following:
RepositoryConfig
could be marked with[repr(C)]
to get C memory layout which would make sharing them much more convenient. In the end only things wrapped inArc
s actually need to be hidden behind opaque pointers.block_on
to get out of the async machinery. However I have no idea how this would interact if a calling site actually tried to perform async calls into the library (probably it would just break?)