nix-ccache

A flake to remotely build and/or cache C/C++ compilation, using recursive Nix (by edolstra)

Nix-ccache Alternatives

Similar projects and alternatives to nix-ccache

  • sccache

    Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.

  • remote-apis

    An API for caching and execution of actions on a remote system.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better nix-ccache alternative or higher similarity.

nix-ccache reviews and mentions

Posts with mentions or reviews of nix-ccache. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-22.
  • Mozilla sccache: cache with cloud storage
    4 projects | news.ycombinator.com | 22 Dec 2023
    sccache should not be allowed in the sandbox; realistically such cases are probably better handled in the long run by Recursive Nix, so that you can build new derivations inside of existing ones, and the results are cached in the same (outer) store. This means there won't be duplicate caches; /nix/store and where-ever sccache puts results.

    Cargo is a good example. For a number of (practical) reasons, cargo -> nix translators are a lot of effort and often have bugs, so for "simplicity" all upstream crates just compile every crate dependency every time. That means if two Nix expressions use the same depedency, it gets compiled twice. It's important to understand this is no worse than the way Cargo works already for most people. Cargo does not have a content address storage model, unfortunately. But it's pretty annoying for Nix users and costs a lot.

    In theory, we could wrap rustc with a recursive-nix enabled wrapper so that rlib's etc each get a granular derivation and then get put into the host store. So assuming a crate gets built with the same flags, between two "outer" expressions, they'll get to share the work and it will go into the store. A working example of this for C++ code is nix-ccache, but a fully robust implementation is a bit of work. [1]

    Recursive Nix is still experimental but there is some use of it (privately and publicly) that I know of for these purposes.

    [1] https://github.com/edolstra/nix-ccache

Stats

Basic nix-ccache repo stats
1
29
10.0
over 2 years ago

The primary programming language of nix-ccache is Nix.


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com