leerho commented on issue #698: URL: https://github.com/apache/datasketches-java/issues/698#issuecomment-3635089469
I certainly applaud extending the library to more languages and Rust has been on my mind for a while. I am willing to set up a *datasketches-rust *repo so those of you that are interested can do your work there. However, so far, none of the active PMC members are familiar with Rust. We would be totally dependent on the community of rust developers to maintain the ds-rust repo, long term. So, please, please, don't just throw stuff into this project and disappear! I would suggest those of you who are interested discuss here how and who would be committed to long-term evolution of the ds-rust repo and its maintenance. There was a question about compatibility across languages that I would like to address. One of the things we have worked very hard to achieve is binary compatibility of the serialized sketch images across languages. This is quite powerful. Our serialization formats are just a blob of bytes where multibyte primitives are stored in LittleEndian format. These formats are documented in the code and are platform, language and 3rd party insensitive. If you look at the formats you will see that there are a few minor conventions. An empty sketch can be represented in 8 bytes, and the first 3 of those 8 bytes are always the same. We can discuss more when the time comes. We don't really have "API compatibility" across the languages. Every language has different conventions for expressing variables, methods, classes, etc., and each language implementation should follow those. At a higher level, we would like to be able to perform the same kinds of analysis independent of the language and the exact form of the API. If you examine our C++ and Java implementations you will see right away that they are quite different at the code level, but the functionality is very close to the same. We also try to limit 3rd party dependencies to ease adoption and to improve security and maintainability. DS-java now has no runtime dependencies, C++ has very few, and Python has a few. So far, we have 3 languages that have official Apache releases: Java, C++, and Python. And I understand the folks contributing to Go are working on a release. We would want the Rust component of the library to also have an official Apache release when it is ready. I welcome more comments! Cheers, Lee. On Tue, Dec 9, 2025 at 3:39 PM tison ***@***.***> wrote: > *tisonkun* left a comment (apache/datasketches-java#698) > <https://github.com/apache/datasketches-java/issues/698#issuecomment-3634736903> > > Back link - > https://lists.apache.org/thread/1x78l0m401qyyzxrmo0zdrxn4onq0q8b > > — > Reply to this email directly, view it on GitHub > <https://github.com/apache/datasketches-java/issues/698#issuecomment-3634736903>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ADCXRQXMDYEHO34BUKOLE2L4A5MR5AVCNFSM6AAAAACOQA32GWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTMMZUG4ZTMOJQGM> > . > You are receiving this because you are subscribed to this thread.Message > ID: ***@***.***> > -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
