Skip to content
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

Apps using winsqlite3 feature no longer builds #1449

Open
bdbai opened this issue Feb 13, 2024 · 5 comments
Open

Apps using winsqlite3 feature no longer builds #1449

bdbai opened this issue Feb 13, 2024 · 5 comments

Comments

@bdbai
Copy link

bdbai commented Feb 13, 2024

We are building an app for Windows that uses rusqlite with winsqlite3 feature from the very beginning:

https://github.com/YtFlow/YtFlowCore/blob/40037e19a802b74f7a1fa0eeb363166228b05f57/ytflow/Cargo.toml#L153

However in #1433 this feature was dropped. May I know how to continue making use of winsqlite through rusqlite?

@gwenn
Copy link
Collaborator

gwenn commented Feb 13, 2024

#1270 (comment)

the compiled version of SQLite inside of Windows is only meant to be used by projects that are bundled as part of the Windows operating system ( microsoft/win32metadata#824 (comment)), not non-Microsoft projects.

@bdbai
Copy link
Author

bdbai commented Feb 13, 2024

@gwenn

Thanks for pointing it out. CMIIW, I think the statement you are quoting does not come from an official source or documentation that Microsoft claims?

Regarding the comment microsoft/win32metadata#824 (comment), maybe someone misinterprets it here?

Windows ships a compiled version of SQLite in System32/winsqlite3.dll that certain OS projects depend on. If you want to use this version to reduce your overall binary size, you can link against this version instead of compiling it directly into your own project.
I don't recommend that for non-OS projects, but that's where it comes from. @jonwis may have some guidance here.

AFAIK it just looks like some kind of personal preference, instead of an official announcement of the direction that winsqlite3 in Windows is going to follow. link against this version instead of compiling it directly into your own project is still an option.

Well I understand that it might be a maintenance burden given few people use it. Now that winsqlite is already implemented and shipped in stable releases, I would suggest still keeping the option to use winsqlite and remove only the tests, and then let those who need it to test it out.

@bdbai
Copy link
Author

bdbai commented Feb 13, 2024

For your reference, winsqlite3 is also available as a provider of the .NET library Microsoft.Data.Sqlite.

https://learn.microsoft.com/en-us/dotnet/standard/data/sqlite/custom-versions?tabs=netcore-cli

@gwenn
Copy link
Collaborator

gwenn commented Feb 18, 2024

@davidbarsky, @thomcc
Could you please advise ?

@davidbarsky
Copy link

@davidbarsky, @thomcc

Could you please advise ?

I can't reasonably advise, but the fact that feature flag has bitten me when vendoring crates into a monorepo will remain a risk if it returns.

As a person consuming this library (but not necessarily using it), the RUSTFLAGS approach I mentioned in the original issue won't cause me or my employer much difficulty or risk. That being said, I think the .NET team will have substantially more viability into what version of sqlite version will be bundled into Windows than me, so I'm not exactly qualified to opine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants