The latest release of Lore, Epic Games' next-generation open source version control system.
Quickstart | Design | Documentation | Discord
Quick Install
Windows
irm https://raw.githubusercontent.com/EpicGames/lore/main/scripts/install.ps1 | iex
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/EpicGames/lore/main/scripts/install.sh | bash
Release Notes
Changes since v0.8.5.
Breaking changes
lore-client: logging CLI arguments are now strictly mutually exclusive; a command line passing conflicting logging flags is rejected instead of silently accepted- Auth
login/infonow returnNotSupported(code 18) when the server has no auth endpoint configured, and surfaceNotAuthenticated/Disconnectedinstead of a generic internal error (code -1); scripts branching on these exit/FFI codes must be updated - Presigned URL vending (
POST /v1/repository/{id}/content/{address}/presign) is now restricted to service accounts; normal user tokens can no longer mint presigned URLs
Features
lore-server: forwardBranchListandRepositoryCreateto a remote Lore server when configured (extending the existingBranchCreate/BranchDelete/BranchGetforwarding)lore: add a batch node-add verb (lore_revision_tree_add) to the low-level revision API, landing a whole subtree atomicallylore: run the service process (lore service run) on Linux and macOS, not just Windowslore: validate that all strings passed to the C API are valid UTF-8, rejecting invalid input up front with a named fieldlore-server: support file:// JWKS endpoints in the JWK servicelore-revision: optionaldurable_delayon the composite store so read replicas can answer before the durable tier is queriedlore-storage: self-heal corrupt (torn-write / zero-filled) mutable store buckets instead of failing to open the storelore-server: addCache-Controlheaders to the presigned-URL redeem endpoint for immutable content- Add a self-contained Terraform example for an AWS primary + edge deployment under
contrib/aws/
Fixes & Improvements
lore-storage:read_intonow respects the requested byte range for single-fragment reads (partial reads of files ≤ 256 KiB no longer fail)lore-server: fix JWK refresh cache check so a missing/rotated key triggers a fetch, allowing key rotation without a restartlore-credential: require a DNS label boundary when matching a dotless JWTaud, and allow exact apex-domain matches, closing an audience-suffix leaklore-revision: preserve dirty move status throughstatus --scaninstead of degrading it to delete + addlore-revision: bound commit read memory with a travelling fragment permit, and cap directory recursion fan-out during commitlore-revision: drain staging tasks on all error paths so failures propagate cleanlylore-storage: batch FastCDC chunking to cut per-chunk overhead on medium/large writes- Add transport connect timeouts so local reads no longer stall on an unreachable remote
lore: use the calling process's working directory for absolute-path resolution in the service process- Fix
lore_branch_switchandlore_branch_resetto restore the branch name→id mapping (so the branch appears in the local list), with a--forceoverride lore-revision: fixrestorefailing withDirty node remain after nodes were committedlore-base: update vendoredrpmallocto 2.0.1
Release Assets
Important
These can be downloaded under the "Assets" section below.
Installer
lore-setup- Lore CLI Windows installer
Binaries
lore- Lore CLIloreserver- Lore Serverliblore- Lore Shared Library
Headers
lore.h- Single header forliblore(packged withliblore)
Supported Platforms
- Windows x84_64
- macOS AArch64
- Linux x86_64
- Linux AArch64 (for Graviton/Neoverse 512-tvb only)
Lore Desktop Client
Important
Lore Desktop Client is available as binaries only, download the installer for your platform here:
- Windows: Lore-Desktop-Setup-x64.exe
- macOS: Lore-Desktop-arm64.dmg
- Linux (Ubuntu 24.04): lore-desktop_amd64.deb
- Linux (AppImage): Lore-Desktop-x86_64.AppImage