Faiss should publish a nuget package with all the native dlls needed to consume the library in .NET
palenshus opened this issue · comments
Summary
Currently, to use faiss in .NET on Windows, through a library like https://github.com/andyalm/faissmask or https://vektonn.github.io/vektonn/, you have to somehow acquire the necessary faiss dlls. This probably involves cloning and building the faiss repo, or using vcpkg, which is quite an involved experience and totally unfamiliar to many .NET developers. Instead, there should be a FaissNativeDependencies
or some such nuget package which those packages can take a dependency on.
Platform
Specifically I'm envisioning this for Windows, but I believe this would be useful on Linux as well. The faissmask library already includes the linux/mac dependencies in the package, but it would be better to have those as a chained dependency IMO.
We don't plan to support it, rationale here:
Thanks @mdouze! But, I'm not sure the rationale applies here. The answer starts with "The reason why we don't support more platforms", but I'm not asking for another platform, just a distribution of the already built binaries. Presumably you're already building DLLs at some point, I'm just asking for a simple nuget manifest and publish step. I've already built and published a nuget to our local ADO instance, I suppose if this issue gets rejected I could publish that to nuget.org instead, would there be any opposition to that?
+1 only publish the native dll to nuget, and other .NET developer will reference this nuget package and write a Wrapper to support .NET platform.