You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enable native Windows installation of jax-md by using Winloop as a drop-in replacement for uvloop.
Problem
jax-md cannot be installed on Windows due to this transitive dependency chain:
jax-md -> flax -> orbax-checkpoint -> uvloop
uvloop is Unix-only (it wraps libuv's Unix event loop). This blocks native Windows usage of jax-md and forces WSL2 as a workaround (#92 phase 1).
Proposed solution
Winloop is a Windows-compatible fork of uvloop built on top of libuv's Windows IOCP backend. It provides a drop-in replacement API.
Options (in order of preference)
Upstream fix in orbax-checkpoint: Make uvloop an optional/conditional dependency -- only require it on non-Windows platforms. This is the right fix since orbax-checkpoint likely only uses uvloop for async checkpointing performance, not correctness.
Summary
Enable native Windows installation of jax-md by using Winloop as a drop-in replacement for
uvloop.Problem
jax-md cannot be installed on Windows due to this transitive dependency chain:
uvloopis Unix-only (it wraps libuv's Unix event loop). This blocks native Windows usage of jax-md and forces WSL2 as a workaround (#92 phase 1).Proposed solution
Winloop is a Windows-compatible fork of uvloop built on top of libuv's Windows IOCP backend. It provides a drop-in replacement API.
Options (in order of preference)
Upstream fix in orbax-checkpoint: Make
uvloopan optional/conditional dependency -- only require it on non-Windows platforms. This is the right fix since orbax-checkpoint likely only uses uvloop for async checkpointing performance, not correctness.Upstream fix in jax-md: Make
flaxan optional dependency (see feat(backends): Native Windows jax-md support via Winloop #94), eliminating the chain entirely for MM-only usage.Local workaround: Install jax-md with
--no-deps, then manually install dependencies substituting Winloop for uvloop:Platform-conditional dependency in our pyproject.toml:
Acceptance criteria
pip install q2mm[jax-md]works on Windows without WSL2JaxMDEnginepasses all tests on native WindowsRelated issues