nixpkgs/pkgs/by-name/my/mycelium/package.nix
Florian Klink 1fb00f1396 mycelium: 0.4.5 -> 0.5.0
Changed
 - Connection identifier is now included in the error log if we can't forward a
 - seqno request.
 - Garbage collection time for source entries has been increased from 5 to 30 minutes
 - for now.
 - The router implementation has been changed to use regular locks instead of an
 - always readable concurrency primitive for all but the actual routing table. This
 - should reduce the memory consumption a bit.
 - Public key and shared secret for a destination are now saved on the router, instead
 - of maintaining a separate mapping for them. This slightly reduces memory consumption
 - of the router, and ensures stale data is properly cleaned up when all routes to
 - a subnet are removed.
 - Hello packets now set the interval in which the next Hello will be sent properly
 - in centiseconds.
 - IHU packets now set the interval properly in centiseconds.
 - IHU packets now set an RX cost. For now this is the link cost, in the future
 - this will be set properly.
 - Route expiration time is now calculated from the interval received in updates.
 - Ip address derivation from public keys now uses the blake3 hash algorithm.

Fixed
 - Don't try to forward seqno requests to a peer if we know its connection is dead.
2024-04-04 12:44:23 +03:00

40 lines
981 B
Nix

{ lib
, rustPlatform
, fetchFromGitHub
, stdenv
, darwin
}:
rustPlatform.buildRustPackage rec {
pname = "mycelium";
version = "0.5.0";
src = fetchFromGitHub {
owner = "threefoldtech";
repo = "mycelium";
rev = "v${version}";
hash = "sha256-K82LHVXbSMIJQlQ/qUpdCBVlAEZWyMMG2eUt2FzNwRE=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"tun-0.6.1" = "sha256-DelNPCOWvVSMS2BNGA2Gw/Mn9c7RdFNR21/jo1xf+xk=";
};
};
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
];
meta = with lib; {
description = "End-2-end encrypted IPv6 overlay network";
homepage = "https://github.com/threefoldtech/mycelium";
changelog = "https://github.com/threefoldtech/mycelium/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ flokli matthewcroughan ];
mainProgram = "mycelium";
};
}