manticoresoftware / manticoresearch

Easy to use open source fast database for search | Good alternative to Elasticsearch now | Drop-in replacement for E in the ELK soon
https://manticoresearch.com
GNU General Public License v3.0
8.83k stars 489 forks source link

Add Rust programming language as part of ManticoreSearch #1149

Open AbstractiveNord opened 1 year ago

AbstractiveNord commented 1 year ago

Is your feature request related to a problem? Please describe. C++ language is high-level and performant language. Rust is also high-level and performant language, additionally provides more memory guarantees, modern syntax and great tools. Rust and C++ code may work together, and I want it to be possible to extend the capabilities of ManticoreSearch with the Rust programming language.

Describe the solution you'd like Prepared environment and estimated pipeline for integrating Rust code into ManticoreSearch, which makes more people available to fix bugs, add new features, and extend ManticoreSearch.

Describe alternatives you've considered No alternatives.

Additional context Pull Request

tomatolog commented 1 year ago

it is a long term issue to make ManticoreSearch a separate library. I'd start that first rather add rust hello world to project.

tomatolog commented 1 year ago

you could also create new rust project then use ManticoreSearch via corrosion there and not add the rust inside ManticoreSearch till you manage how to extract and use ManticoreSearch as a separate library

tomatolog commented 1 year ago

you could also could try to add your code as UDF described UDFs_and_Plugins at out manual.

As UDF already has stable interface sphinxudf.h and examples udfexample.c and plugins repository

sanikolaev commented 1 year ago

This article https://docs.rust-embedded.org/book/interoperability/c-with-rust.html and this tool https://github.com/rust-lang/rust-bindgen may be helpful to get started. Feel free to ask us any specific questions on how this or that works in the UDFs or in Manticore.

AbstractiveNord commented 1 year ago

Rust UDFs is current step