Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'm trying to make Aim work on Windows, and I've managed to build
aimrocks
.All the tests pass, except
test_unicode_path
. I tried fixing it, but somewhere between Python -> C Extension -> rocksdb the Unicode path name gets mangled despite Python supporting Unicode paths on Windows.The big idea is using
vcpkg
to buildrocksdb
and all it's dependencies (zlib
, ...) on Windows.Build Instructions
Install a Windows C++ compiler
I used Visual Studio 2022 Community Edition (free). I'm not sure where the other Python packages with Windows binaries get the compiler and how they integrate it in the CI/CD.
Clone vcpkg
Checkout supported version of rocksdb
The current version (
HEAD
) ofvcpkg
hasrocksdb-7.7.3
which is incompatible withaimrocks
.vcpkg
was updated to use this version on 30 Dec 2021, so we need to use avcpkg
snapshot before that, which hasrocksdb-6.27.3
cd vcpkg git checkout tags/2022.11.14
Bootstrap vcpkg
-disableMetrics
disables telemetry.cd vcpkg bootstrap-vcpkg.bat -disableMetrics
Build rocksdb and dependencies
We build the static library version of everything (
x64-windows-static-md
) so that we don't have .DLLs to manage. The-md
at the end uses the DLL version of the Microsoft C Runtime (just like Python).cd vcpkg vcpkg install rocksdb[bzip2,lz4,snappy,zlib,zstd]:x64-windows-static-md
Clone aimrocks
Clone next to the
vcpkg
directories, so they are siblings:Create virtual env
Install required Python packages
Build and install aimrocks
Run tests