Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ automerge-repo
Automerge's
backend
base58
Cachix
CBOR
CLI
cli
Expand Down
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ A CLI for managing CRDT-backed files with automatic conflict resolution and peer

```mermaid
graph LR
A["🖥️ Your Machine<br/>project/<br/>&nbsp;&nbsp;&nbsp;&nbsp;├── .darn<br/>└── ..."]
B["🖥️ Peer's Machine<br/>project/<br/>&nbsp;&nbsp;&nbsp;&nbsp;├── .darn<br/>└── ..."]
C["🖥️ Another Peer<br/>project/<br/>&nbsp;&nbsp;&nbsp;&nbsp;├── .darn<br/>└── ..."]
A["🖥️ Your Machine<br/><code>project/.darn/</code>"]
B["🖥️ Peer's Machine<br/><code>project/.darn/</code>"]
C["🖥️ Another Peer<br/><code>project/.darn/</code>"]

A -- sync --> B
B -- sync --> A
Expand Down Expand Up @@ -83,10 +83,15 @@ cargo install --path darn_cli

### Nix

For faster builds, use the [Cachix](https://cachix.org) binary cache:

```bash
nix build # or: nix develop
cachix use inkandswitch # one-time setup
nix build # or: nix develop
```

Without Cachix, `nix build` will compile everything from source (slow).

## Crates

| Crate | Description |
Expand Down
26 changes: 12 additions & 14 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -87,37 +87,35 @@
packages = {
darn = pkgs.rustPlatform.buildRustPackage {
pname = "darn";
version = "0.4.0";
version = "0.5.1";
meta = {
description = "Distributed Automerge Resource Navigator";
description = "Directory-based Automerge Replication Node";
longDescription = ''
A filesystem CLI for managing CRDT-backed files using
Subduction (P2P sync) and Automerge (CRDT documents).
Enables local-first, collaborative file management with
automatic conflict resolution and peer-to-peer synchronization.
A CLI for managing CRDT-backed files with automatic conflict
resolution and peer-to-peer synchronization. Uses Automerge
for conflict-free merging and Subduction for P2P sync.
'';
homepage = "https://github.com/inkandswitch/darn";
license = [
pkgs.lib.licenses.mit
pkgs.lib.licenses.asl20
];
maintainers = [pkgs.lib.maintainers.expede];
license = with pkgs.lib.licenses; [mit asl20];
platforms = pkgs.lib.platforms.unix;
mainProgram = "darn";
};

src = ./.;
src = pkgs.lib.cleanSource ./.;

cargoLock = {
lockFile = ./Cargo.lock;
};

buildInputs = pkgs.lib.optionals pkgs.stdenv.isLinux [pkgs.openssl];
nativeBuildInputs = [pkgs.pkg-config];

buildInputs =
pkgs.lib.optionals pkgs.stdenv.isLinux [pkgs.openssl]
++ pkgs.lib.optionals pkgs.stdenv.isDarwin [pkgs.apple-sdk];

cargoBuildFlags = ["--bin" "darn"];

doCheck = !pkgs.stdenv.buildPlatform.canExecute pkgs.stdenv.hostPlatform;
doCheck = pkgs.stdenv.buildPlatform.canExecute pkgs.stdenv.hostPlatform;

checkPhase = ''
cargo test --release --locked
Expand Down
Loading