Skip to content

The Nexus (.nx) Archive Format



A Quite OK Archive Format.
For Storing and Sharing Mods.
GitHub Workflow Status

About

The Nexus (.nx) format is a semi-SOLID archive format, using modern compression technologies such as ZStandard and LZ4 under the hood.

flowchart TD
    subgraph Block 2
        BigFile1.bin
    end

    subgraph Block 1
        BigFile0.bin
    end

    subgraph Block 0
        ModConfig.json -.-> Updates.json 
        Updates.json -.-> more["... more .json files"]        
    end

Between size optimized SOLID archives like .7z w/ LZMA and non-SOLID archives like .zip w/ Deflate, the Nexus (.nx) format bridges the gap; providing a tradeoff with most of the benefit of both worlds.

We aim to create a simple format, appropriate for both local storage of mods and for downloading from the web.
By using modern compression techniques, we provide both competitive file size and compression speeds.

Motivation

For the Nexus App

We recompress legacy uploaded mods for faster deployment and re-deployment.
And can skip hashing after downloading a .nx file.

For the Community

We can get cool tech in the hands of people; and contribute back to the open source community.

  • For Fast Random Access

We use small SOLID blocks, for grouping small files where SOLID compression matters the most.
Combine with blazing fast 5000+MB/s (modern CPU) single core LZ4 for pretty decent random access speeds.

  • For Storage Sizes

For longer term archival and smaller downloads; bigger files are handled by ZStandard to reduce total size.
You probably don't need to preview them instantly, so it makes sense, right?

  • For File Downloads

This format allows us to do partial downloads of mods.
If only a few files in a mod were updated; why should you need to download the entire thing again?

Technical Questions

If you have technical questions, direct them to library & docs author @Sewer56 via one of these methods:

Happy Hacking 🧡