-
Notifications
You must be signed in to change notification settings - Fork 166
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
.NET install support #193
Comments
I'm down to add a nuget package for sqlite-vec! Thanks for sharing the mod_spatialite sample, that helps a lot Do you mind sharing what your current code looks like? I've never tried .NET before and wanna make sure my mental model is right |
To use it in .NET you would do: var connection = new SqliteConection(<connection string here>);
connection.LoadExtension("vec0");
// open and use I'm still doing some experimentation, but from the looks of it, you just need to provide the path (absolute or relative) to where the extension is on disk. If you just do Once I have a better idea, I'm happy to submit a PR |
Came across a sample - https://github.com/dotnet/docs/blob/main/samples/snippets/standard/data/sqlite/ExtensionsSample/Program.cs It does require a bit of additional work, but that's at the consumer end, so something that wouldn't be shipped by this package |
Sweet, thanks for sharing! Another sample from the spatialite project: https://github.com/bricelam/mod_spatialite-NuGet/blob/master/test/Spatialite.Tests/Program.cs Hoping we can avoid the var connection = new SqliteConnection('...');
SqliteVec.load(connection); That matches the Python/Ruby/JavaScript APIs we have. That way we can resolve to the correct For generating the nuget package, ideally I'd like to package it with the (but dont worry about that, I can add that code, it's confusing code in Rust) |
I'd actually recommend to not include the loader logic, just the extension binaries, so then it becomes the responsibility of the consumer to load using whatever logic is going to make the most sense. For example, I want to use it in conjunction with the change I'm working on here: CommunityToolkit/Aspire#428 For this to work, I'd have code like this in the app host (defining the infra): var vectors = builder.AddSqlite("vectors").WithExtension("vec0");
builder.AddProject<Api>("api").WithReference(vectors); Then in the client (the API project) I would write: builder.AddSqlite("vectors"); And the Aspire integration takes care of loading the |
I want to use this with the .NET Sqlite library but there's no .NET/NuGet package that it's provided via which causes a bit of a workaround to use (manually copying the file).
NuGet packages support multiple architectures so it should be possible to bundle and ship a package.
Here's mod_spatialite as an example.
The text was updated successfully, but these errors were encountered: