1{ lib
2, stdenv
3, rustPlatform
4, fetchFromGitLab
5, pkg-config
6, sqlite
7, openssl
8, CoreServices
9}:
10
11rustPlatform.buildRustPackage rec {
12 pname = "arti";
13 version = "1.1.5";
14
15 src = fetchFromGitLab {
16 domain = "gitlab.torproject.org";
17 group = "tpo";
18 owner = "core";
19 repo = "arti";
20 rev = "arti-v${version}";
21 sha256 = "sha256-FrawcoE+cUhRq9NPpSspUuk0ZPjnJcmDHD25syV/18E=";
22 };
23
24 cargoHash = "sha256-34qNdizJ89fo/6AQXuB8FqvYSv/Zy5N+gXX9Yl5sywM=";
25
26 nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
27
28 buildInputs = [ sqlite ]
29 ++ lib.optionals stdenv.isLinux [ openssl ]
30 ++ lib.optionals stdenv.isDarwin [ CoreServices ];
31
32 cargoBuildFlags = [ "--package" "arti" ];
33
34 cargoTestFlags = [ "--package" "arti" ];
35
36 meta = with lib; {
37 description = "An implementation of Tor in Rust";
38 homepage = "https://gitlab.torproject.org/tpo/core/arti";
39 changelog = "https://gitlab.torproject.org/tpo/core/arti/-/raw/${src.rev}/CHANGELOG.md";
40 license = with licenses; [ asl20 /* or */ mit ];
41 maintainers = with maintainers; [ marsam ];
42 };
43}