-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider migrating to Rust based Python package? #319
Comments
Another example from Temporal SDK core |
It's really a great idea, thank you Haoxin. |
Agreed, was considering pyo3 when facing perf issues in wey-gu/nebula-dgl#10 We could do so in free time! |
Also find this https://github.com/jni-rs/jni-rs for Java :) |
Also, recently I had some chance to implement/build something with cython, later I could prepare a PR to add cython build of nebula-python and come with a benchmark. |
👍Both |
Cool idea. We can start by simply checking that the core functionality is aligned. |
General Question
More and more Python packages are built from the Rust code base. Such as:
The associated tools are:
https://github.com/PyO3
The benefit is that we can build the logic from Rust once and publish it as Rust, Python, and even JavaScript (Node.js) packages.
This is especially the trending solution for the data/ML ecosystem.
When I start to build the services and SDKs based on the Nebula.
The first candidate language is Rust so that I can develop and deploy the services as Rust code, and build the Python SDKs (for data scientists) based on the Rust codebase.
This is the ideal solution for writing code only once.
But the Rust client for Nebula is not ready at last year.
Since we already have the first draft version of the Nebula Rust client, I think this is a good time to share this idea with you guys.
The other tools for more languages that I'm not used to are:
https://github.com/dtolnay/cxx for
c++
cc @Nicole00 @wey-gu
The text was updated successfully, but these errors were encountered: