cliqz-oss / keyvi

Keyvi - a key value index that powers Cliqz search engine. It is an in-memory FST-based data structure highly optimized for size and lookup performance.
https://cliqz.com
Apache License 2.0
179 stars 38 forks source link

C Api and Rust bindings #242

Closed narekgharibyan closed 4 years ago

narekgharibyan commented 6 years ago

@hendrikmuhs This PR includes:

coveralls commented 6 years ago

Coverage Status

Coverage increased (+0.02%) to 88.334% when pulling 0eeb01a6e0ba2f709b00471bab529439491a45a3 on narekgharibyan:rust_bindings into eee0a9fa1a341a8b9b8d3d3fc1476dbc4c3e346d on cliqz-oss:master.

hendrikmuhs commented 6 years ago

rust binding look cool, can not judge on it much.

I wonder: how rust specific is the c-api? Are there other usecases for it? If not, I think it would be better to have them in the rust bindings folder.

Also nice bug fixing and re-factorings, my wish here: unit tests for them.

As in the review: I do not get the completion change, I think this is a misunderstanding, you change it into fuzzy matching. FWIW: Obviously the test coverage is bad / non-existent, but thats my fault, the fuzzy stuff lacks a lot.

narekgharibyan commented 6 years ago

Thanks!

regarding C-Api: It's rust specific only in a way, that it was implemented in that context, but nothing more. We did some research and looks like having a C-Api is the best way to build basis for building bindings to other languages. Although it's quite limited at the moment and has implemented only the things needed for Rust Api.

And for the Fuzzy: I'll add a dedicated method for Fuzzymatch.

coveralls commented 6 years ago

Coverage Status

Coverage increased (+0.02%) to 88.334% when pulling 70c12d84811ec22037c975e96a69c27ea907cfe3 on narekgharibyan:rust_bindings into eee0a9fa1a341a8b9b8d3d3fc1476dbc4c3e346d on cliqz-oss:master.