On Thu Jan 11 15:33:42 2024 +0000, Alexandre Julliard wrote:
The main argument against SQLite is likely the cost of adding an
effectively non-optional dependency. In particular, while SQLite is commonly available on Linux distributions, things are a bit harder on Windows/Wine. The implication would likely be adding SQLite as a bundled library to Wine (as well as CrossOver, but we're not necessarily terribly concerned about CrossOver here), so it may be worth getting @julliard's views on that beforehand. SQLite is shipped with Windows as winsqlite3.dll, so it will be added to Wine sooner or later.
I am not aware of any Win32 APIs suitable here, other than the mentioned winsqlite3.dll. There's cabinet.dll, but as far as I understand it it will only unpack the full file. Afaics we don't need to extract it to disk (carefully written callbacks could just write to memory). It would be platform specific, so we'd need some codepath for Unix too. I don't think it has the performance characteristics we want either.
Microsoft had some database libraries over time, but they aren't part of Win32. Unless we pack the cache into PE resource files or WritePrivateProfileString .ini files.
There's an LZ77 decompression algorithm in kernel32, but nothing to compress.