Migrate from FLOX¶
lrvx is the new name of FLOX. The engine, the bindings and the on-disk formats are the same; the packages, import names, commands, environment variables and CMake options carry the new name. Existing tapes and run traces read unchanged, and the flox-py and flox-mcp packages remain as deprecated shims, so Python code can move one piece at a time. The old environment variable and CMake option names are not read; the tables below map each one to its new name.
New names¶
| What | FLOX | lrvx |
|---|---|---|
| Python package (PyPI) | flox-py |
lrvx |
| Python import | import flox_py |
import lrvx |
| Python CLI | flox |
lrvx |
| MCP server package (PyPI) | flox-mcp |
lrvx-mcp |
| MCP server import / CLI | flox_mcp / flox-mcp |
lrvx_mcp / lrvx-mcp |
| npm package | @flox-foundation/flox |
@lrvx/lrvx |
| Codon package | from flox.strategy import ... |
from lrvx.strategy import ... |
| Embedded QuickJS global | flox |
lrvx |
| C++ namespace / headers | flox::, <flox/...> |
lrvx::, <lrvx/...> |
| CMake package / target | find_package(flox), flox::flox |
find_package(lrvx), lrvx::lrvx |
| C API | libflox_capi, flox_*, Flox* |
liblrvx_capi, lrvx_*, Lrvx* |
| Tape / run / index | .floxlog, .floxrun, index.floxidx |
.lrvx, .lrvxrun, index.lrvxidx |
| Environment variables | FLOX_* |
LRVX_* |
| CMake options | FLOX_* |
LRVX_* |
| Repository | github.com/FLOX-Foundation/flox |
github.com/lrvx/lrvx |
| Documentation | flox-foundation.github.io/flox |
docs.lrvx.dev |
Install the new packages¶
pip uninstall flox-py flox-mcp
pip install lrvx # add lrvx-mcp for the MCP server
npm uninstall @flox-foundation/flox
npm install @lrvx/lrvx
Then replace the imports: import flox_py (or import flox_py as flox) becomes import lrvx, require('@flox-foundation/flox') becomes require('@lrvx/lrvx'), and from flox.<module> import ... in Codon becomes from lrvx.<module> import .... For the MCP server, run lrvx-mcp init to write a client config that launches lrvx-mcp; the server entry is named lrvx, so tools appear under that prefix in the client. An mcpServers.flox entry that launches flox-mcp is replaced rather than kept next to it, and the engine URL and token it carried move over.
Compatibility packages¶
flox-py 0.10.2 and flox-mcp 0.10.2 are deprecated shims for code that cannot move yet:
flox-pydepends on the matchinglrvxrelease.import flox_pyemits oneDeprecationWarningand re-exports everythinglrvxexports;flox_py.<module>(for exampleflox_py.cliorflox_py.tape) is the same module object aslrvx.<module>, andflox_py.FloxErrorislrvx.LrvxError. Thefloxcommand prints a deprecation line to stderr and runslrvx.flox-mcpdoes the same forlrvx-mcp:import flox_mcpforwards tolrvx_mcp, and theflox-mcpcommand runslrvx-mcp.
The shims add nothing of their own and receive no further development. They are built from compat/ in the repository with scripts/build_compat_shims.sh <outdir>.
Environment variables¶
Every variable reads only its LRVX_* name; the FLOX_* names are not read, so rename them in shell profiles, service units, CI settings and .env files.
| FLOX | lrvx | Read by |
|---|---|---|
FLOX_LIVE |
LRVX_LIVE |
the live project template (lrvx new --template=live) |
FLOX_ARCHIVE_CACHE |
LRVX_ARCHIVE_CACHE |
the exchange archive importers |
FLOX_RUNTIME_STATE |
LRVX_RUNTIME_STATE |
lrvx-mcp runtime tools |
FLOX_CONTROL_URL |
LRVX_CONTROL_URL |
lrvx-mcp control and analytics tools |
FLOX_CONTROL_TOKEN |
LRVX_CONTROL_TOKEN |
lrvx-mcp control and analytics tools |
FLOX_HL_SIGNER_SOCKET |
LRVX_HL_SIGNER_SOCKET |
the Hyperliquid connector's signer client |
FLOX_MCP_REQUIRE_DEPS |
LRVX_MCP_REQUIRE_DEPS |
the lrvx-mcp test suite |
FLOX_FUZZ_OPS |
LRVX_FUZZ_OPS |
the venue differential fuzz test, for a deep run |
FLOX_UPDATE_GOLDEN |
LRVX_UPDATE_GOLDEN |
the venue golden replay test, to rewrite its hashes |
FLOX_UPDATE_SESSION_TABLE |
LRVX_UPDATE_SESSION_TABLE |
the venue session test, to rewrite its golden table |
FLOX_BENCH_RT |
LRVX_BENCH_RT |
batch_delivery_benchmark, to opt in to real-time scheduling |
FLOX_LIBCLANG_PATH |
LRVX_LIBCLANG_PATH |
the C API code generator in tools/codegen |
FLOX_LIBCLANG |
LRVX_LIBCLANG |
scripts/check_gate_reachability.py |
FLOX_COMPILE_COMMANDS, FLOX_CMAKE |
LRVX_COMPILE_COMMANDS, LRVX_CMAKE |
scripts/check_doc_cpp_examples.py |
FLOX_PY_BUILD_DIR |
LRVX_PY_BUILD_DIR |
scripts/gen_pyi_stubs.py |
FLOX_CTEST_BUILD_DIR |
LRVX_CTEST_BUILD_DIR |
scripts/run-with-sanitizer-scan.sh |
Default locations carry the new name: the archive cache is ~/.lrvx/archive-cache and the runtime snapshot is /tmp/lrvx-runtime-state.json. Point LRVX_ARCHIVE_CACHE at the old ~/.flox/archive-cache to keep the downloads already cached there.
CMake options¶
CMake does not recognise the FLOX_* option names. A FLOX_* value passed with -D sets nothing, and CMake lists it under "Manually-specified variables were not used by the project"; one set by a preset, a parent project or an existing build directory's cache is ignored without a warning. Each option keeps its default until it is set under its LRVX_* name.
| FLOX | lrvx |
|---|---|
FLOX_BUILD_TESTS |
LRVX_BUILD_TESTS |
FLOX_BUILD_BENCHMARKS |
LRVX_BUILD_BENCHMARKS |
FLOX_BUILD_DEMO |
LRVX_BUILD_DEMO |
FLOX_BUILD_TOOLS |
LRVX_BUILD_TOOLS |
FLOX_BUILD_PYTHON |
LRVX_BUILD_PYTHON |
FLOX_BUILD_NODE |
LRVX_BUILD_NODE |
FLOX_BUILD_CAPI |
LRVX_BUILD_CAPI |
FLOX_BUILD_CODON |
LRVX_BUILD_CODON |
FLOX_BUILD_QUICKJS |
LRVX_BUILD_QUICKJS |
FLOX_BUILD_CONNECTORS |
LRVX_BUILD_CONNECTORS |
FLOX_BUILD_VENUE |
LRVX_BUILD_VENUE |
FLOX_BUILD_CONNECTOR_INTEGRATION_TESTS |
LRVX_BUILD_CONNECTOR_INTEGRATION_TESTS |
FLOX_ENABLE_BENCHMARKS, FLOX_ENABLE_TESTS, FLOX_ENABLE_DEMO, FLOX_ENABLE_TOOLS, FLOX_ENABLE_PYTHON, FLOX_ENABLE_CAPI, FLOX_ENABLE_CODON, FLOX_ENABLE_QUICKJS, the older spellings of the FLOX_BUILD_* options |
the matching LRVX_BUILD_* |
FLOX_ENABLE_BACKTEST |
LRVX_ENABLE_BACKTEST |
FLOX_ENABLE_LZ4 |
LRVX_ENABLE_LZ4 |
FLOX_ENABLE_ONNX |
LRVX_ENABLE_ONNX |
FLOX_ENABLE_AF_XDP |
LRVX_ENABLE_AF_XDP |
FLOX_ENABLE_TRACY |
LRVX_ENABLE_TRACY |
FLOX_ENABLE_CPU_AFFINITY |
LRVX_ENABLE_CPU_AFFINITY |
FLOX_ENABLE_DEV_SETUP |
LRVX_ENABLE_DEV_SETUP |
FLOX_ENABLE_POLYMARKET_ORDER_EXECUTOR |
LRVX_ENABLE_POLYMARKET_ORDER_EXECUTOR |
FLOX_NATIVE |
LRVX_NATIVE |
FLOX_VENUE_LITE |
LRVX_VENUE_LITE |
FLOX_VENUE_PERIMETER |
LRVX_VENUE_PERIMETER |
FLOX_FETCH_GTEST |
LRVX_FETCH_GTEST |
FLOX_FIX_TLS |
LRVX_FIX_TLS |
FLOX_RUN_CONNECTOR_INTEGRATION_TESTS |
LRVX_RUN_CONNECTOR_INTEGRATION_TESTS |
FLOX_CONNECTORS |
LRVX_CONNECTORS |
FLOX_DEFAULT_EVENTBUS_CAPACITY |
LRVX_DEFAULT_EVENTBUS_CAPACITY |
FLOX_DEFAULT_EVENTBUS_MAX_CONSUMERS |
LRVX_DEFAULT_EVENTBUS_MAX_CONSUMERS |
FLOX_NODE_CPU_AFFINITY |
LRVX_NODE_CPU_AFFINITY |
FLOX_NODE_SANITIZE |
LRVX_NODE_SANITIZE |
Compile-time defines¶
Preprocessor switches follow the same rule: a FLOX_* define on the compiler command line or in a config header is not read.
| FLOX | lrvx |
|---|---|
FLOX_DISABLE_LOGGING |
LRVX_DISABLE_LOGGING |
FLOX_DEFAULT_ORDER_TRACKER_CAPACITY |
LRVX_DEFAULT_ORDER_TRACKER_CAPACITY |
FLOX_DEFAULT_CONNECTOR_POOL_CAPACITY |
LRVX_DEFAULT_CONNECTOR_POOL_CAPACITY |
FLOX_SCALE_CHECKS |
LRVX_SCALE_CHECKS |
FLOX_FORCE_PORTABLE_INT128 |
LRVX_FORCE_PORTABLE_INT128 |
FLOX_FIX_TLS |
LRVX_FIX_TLS |
FLOX_ENABLE_TRACY |
LRVX_ENABLE_TRACY |
FLOX_UNIT_TEST |
LRVX_UNIT_TEST |
Tapes, run traces and indexes¶
The binary formats are the same under both names and the segment sentinel spells FLOX, so nothing needs converting.
- Directories of
.floxlogsegments read as they are. Every reader, the validator, the index builders, merge and split, andlrvx tape viewaccept.floxlognext to.lrvx, and a directory that mixes the two reads as one tape in filename order. New segments are written as.lrvx. See the.lrvxspec. - A
.floxruntrace directory opens like any other:TraceReadertakes the directory path whatever its suffix,lrvx tape viewaccepts.floxrun, and bundle validation readsexpected.floxrun/from bundles packed under the old name. See the.lrvxrunspec. - A global index written as
index.floxidxloads by path withGlobalIndexBuilder::load; rebuilding writesindex.lrvxidx. Per-segment indexes live inside the segment files and need nothing.
Renaming existing files to the new extensions is optional.