RuAnnoy

main appveyor travis

MIT License

This library is a rust port of spotify/annoy , currently only index serving is supported.

Install via crates.io

Crates.io codecov ```toml

Cargo.toml

[dependencies] ru_annoy = "0" ```

Usage

```rust use ru_annoy::*;

let index = AnnoyIndex::load(10, "index.ann", IndexType::Angular).unwrap(); let v0 = index.getitemvector(0); let nearest = index.getnearest(v0.asref(), 5, -1, true); ```

FFI support

kotlin/java

It uses JNI bindings to rust crate and is ~5-10x faster than pure java implementation in benchmark scenario

Install via jitpack.io

Release ```gradle repositories { mavenCentral() maven { url 'https://jitpack.io' } }

dependencies { implementation 'com.github.hanabi1224:RuAnnoy:' } ```

Usage

kotlin val index = AnnoyIndex.tryLoad("index.5d.ann", 5, IndexType.Angular)

dotnet

| Runtimes | Nuget package | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | RuAnnoy | NuGet version | | RuAnnoy-Batteries-Windows-x64 | NuGet version | | RuAnnoy-Batteries-Linux-x64 | NuGet version | | RuAnnoy-Batteries-Darwin-x64 | NuGet version |

Install via nuget

xml <ItemGroup> <PackageReference Include="RuAnnoy" Version="*" /> <PackageReference Include="RuAnnoy-Batteries-Windows-x64" Version="*" /> </ItemGroup>

Usage

csharp var index = AnnoyIndex.Load("index.5d.ann", 5, IndexType.Angular);

TODO