mongrov / timon

Efficient local storage and Amazon S3-compatible data synchronization for time-series data,leveraging Parquet for storage and DataFusion for querying, all wrapped in a simple and intuitive API
Other
0 stars 0 forks source link

Is this crate specific to providing _bindings_ to Android APIs? #12

Open MarijnS95 opened 5 days ago

MarijnS95 commented 5 days ago

Hi! I just saw this crate pop up as the second one under the new https://crates.io/categories/os::android-apis category, and wondered what its relation to Android is. Does it provide OS-specific APIs to Android (but nothing else, given that there are no other os::xxx-apis categories listed)? Android is never mentioned in the main readme for example, so I'm curious how it fits in the ecosystem :+1:

Sidahmeders commented 4 days ago

The crate has specific functionality for Android that is conditionally compiled when targeting android as the OS. This is indicated by the [cfg(target_os = "android")] module in the code, which allows interaction between Android and Rust through JNI (Java Native Interface). In the android module, we provide functions that allow Android apps (using Java or Kotlin) to call Rust functions, such as creating databases, tables, inserting data to parquet, and querying them. This is useful for integrating Rust’s performance and capabilities directly into Android apps via JNI.

This crate is categorized under os::android-apis because it provides the necessary bindings to use it within Android through Rust-JNI

MarijnS95 commented 3 days ago

This crate is categorized under os::android-apis because it provides the necessary bindings to use it within Android through Rust-JNI

If I'm not mistaken the design of the os and os::android-apis category in particular describe crates that expose OS-specific functionality to Rust.

Granted, having more Android (library) related categories would be nice to have.

Sidahmeders commented 3 days ago

Thanks for the clarification and pointing this out! You're absolutely right. I'll consider re-evaluating the categorization accordingly.