s0_udp 0.1.2

sync0 基于 compio 的高速 UDP 传输、线协议、自适应 Zstd 与 Dragonfly P2P 引擎
<a href="https://github.com/webc-site/sync0/blob/main/i18n/en/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/en.svg" alt="English" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/zh/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/zh.svg" alt="中文" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/de/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/de.svg" alt="Deutsch" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/hi/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/hi.svg" alt="हिन्दी" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ja/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ja.svg" alt="日本語" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/fr/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/fr.svg" alt="Français" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/it/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/it.svg" alt="Italiano" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ru/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ru.svg" alt="Русский" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ko/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ko.svg" alt="한국어" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/es/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/es.svg" alt="Español" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/id/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/id.svg" alt="Indonesia" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/tr/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/tr.svg" alt="Türkçe" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ar/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ar.svg" alt="العربية" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/nl/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/nl.svg" alt="Nederlands" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/pl/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/pl.svg" alt="Polski" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/zh-TW/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/zh-TW.svg" alt="正體中文" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sv/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sv.svg" alt="Svenska" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/no/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/no.svg" alt="Norsk Bokmål" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/th/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/th.svg" alt="ไทย" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/vi/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/vi.svg" alt="Tiếng Việt" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ceb/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ceb.svg" alt="Binisaya" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/bn/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/bn.svg" alt="বাংলা" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/fa/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/fa.svg" alt="فارسی" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ms/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ms.svg" alt="Bahasa Melayu" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/mr/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/mr.svg" alt="मরাठी" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/af/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/af.svg" alt="Afrikaans" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/da/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/da.svg" alt="Dansk" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ro/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ro.svg" alt="Română" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ur/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ur.svg" alt="اردو" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/cs/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/cs.svg" alt="Čeština" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ta/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ta.svg" alt="தமிழ்" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/fi/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/fi.svg" alt="Suomi" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/pt/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/pt.svg" alt="Português" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/kn/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/kn.svg" alt="ಕನ್ನಡ" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ca/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ca.svg" alt="Català" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/gu/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/gu.svg" alt="ગુજરાતી" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/kk/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/kk.svg" alt="Қазақ Тілі" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/el/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/el.svg" alt="Ελληνικά" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/hu/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/hu.svg" alt="Magyar" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/uk/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/uk.svg" alt="Українська" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/te/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/te.svg" alt="తెలుగు" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sk/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sk.svg" alt="Slovenčina" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sw/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sw.svg" alt="Kiswahili" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/bg/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/bg.svg" alt="Български" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/cy/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/cy.svg" alt="Cymraeg" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/eu/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/eu.svg" alt="Euskara" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/hr/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/hr.svg" alt="Hrvatski" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/lb/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/lb.svg" alt="Lëtzebuergesch" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/si/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/si.svg" alt="සිංහල" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/az/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/az.svg" alt="Azərbaycanca" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/lt/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/lt.svg" alt="Lietuvių Kalba" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/or/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/or.svg" alt="ଓଡ଼ିଆ" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sr/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sr.svg" alt="Српски Језик" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/be/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/be.svg" alt="Беларуская" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/gl/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/gl.svg" alt="Galego" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/my/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/my.svg" alt="မြန်မာစာ" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sd/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sd.svg" alt="سنڌي" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sl/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sl.svg" alt="Slovenščina" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/as/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/as.svg" alt="অসমীয়া" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/et/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/et.svg" alt="Eesti" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/lv/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/lv.svg" alt="Latviešu Valoda" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/km/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/km.svg" alt="ភាសាខ្មែរ" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ne/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ne.svg" alt="नेपाली" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/hy/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/hy.svg" alt="Հայերեն" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/bs/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/bs.svg" alt="Bosanski" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/ka/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/ka.svg" alt="ქართული" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/is/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/is.svg" alt="Íslenska" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/lo/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/lo.svg" alt="ພາສາລາວ" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/mk/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/mk.svg" alt="Македонски Јазик" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/mt/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/mt.svg" alt="Malti" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/sq/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/sq.svg" alt="Shqip" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/fil/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/fil.svg" alt="Wikang Filipino" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/iw/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/iw.svg" alt="עברית" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/jv/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/jv.svg" alt="Basa Jawa" /></a> <a href="https://github.com/webc-site/sync0/blob/main/i18n/uz/README.md"><img src="https://cdn.jsdmirror.com/gh/webc-site/svg/i18n/uz.svg" alt="O'zbek" /></a>

# sync0

`sync0` is a peer-to-peer (P2P) file sharing and multi-machine synchronization tool that competes with Resilio Sync.

Each machine is both a server and a client: any node can publish multiple file sharing groups. After other nodes join, it will automatically discover available seed nodes and pull them from multiple sources concurrently. After synchronization is completed, it will automatically seed seeds for more nodes to accelerate downloading.

- [Install](#install)
  - [Method 1: Install via Cargo](#method-1-install-via-cargo)
  - [Method 2: Download precompiled binaries](#method-2-download-precompiled-binaries)
- [Core Highlights](#core-highlights)
- [Speed ​​comparison with rsync](#speed-comparison-with-rsync)
  - [A la carte mode vs `rsync`](#a-la-carte-mode-vs-rsync)
  - [P2P dual source mode vs `rsync`](#p2p-dual-source-mode-vs-rsync)
- [Get started quickly](#get-started-quickly)
  - [1. View node address and set business card](#1-view-node-address-and-set-business-card)
  - [2. Publish multiple sharing groups and set member permissions (`.nt` Configuration)](#2-publish-multiple-sharing-groups-and-set-member-permissions-nt-configuration)
  - [3. Pull full content or multiple selections of files and directories (`sync0 pull`)](#3-pull-full-content-or-multiple-selections-of-files-and-directories-sync0-pull)
  - [4. Upload a file or directory (`sync0 push`)](#4-upload-a-file-or-directory-sync0-push)
  - [5. Subscribe to automatic sync and seeding (`sync0 sub`)](#5-subscribe-to-automatic-sync-and-seeding-sync0-sub)
  - [6. Multi-machine group two-way synchronization (`sync0 group`)](#6-multi-machine-group-two-way-synchronization-sync0-group)
  - [7. Point-to-point direct transmission between two machines (`send` / `recv`)](#7-point-to-point-direct-transmission-between-two-machines-send-recv)
  - [8. Multi-language switching](#8-multi-language-switching)

## Install

### Method 1: Install via Cargo

```bash
cargo install sync0
```

### Method 2: Download precompiled binaries

Go to [GitHub Releases](https://github.com/webc-site/sync0/releases) to download the `.tar.xz` compressed package corresponding to the system (supports Linux, macOS, Windows, Android, FreeBSD, NetBSD), unzip and put into `PATH`:

```bash
tar -xJf sync0-*.tar.xz
sudo mv sync0 /usr/local/bin/
```

## Core Highlights

- **Decentralized peer-to-peer synchronization**: No central server dependency, any node can create or join multiple sharing groups, automatically exchange seeds between nodes and synchronize multiple sources concurrently.
- **IP-free node address**: By default, the node key and `base64url` encoded `iroh` address are automatically generated in `~/.config/sync0` without needing to remember or expose the public IP.
- **Multi-select synchronization on demand**: Supports synchronization of the entire sharing group, and you can also select any number of single files and subdirectories for synchronization on demand.
- **Grade permissions and upload directory control**: Supports read-only (`ro`), read-write (`rw`), and management (`admin`) permissions, and can limit the subdirectory prefixes allowed for uploading by member.
- **Cross-network full speed and in-situ increment**: Native UDP congestion control + `compio` asynchronous I/O, supports multi-source striping concurrency of large files, massive small file memory aggregation and FastCDC block-level incremental synchronization.

## Speed ​​comparison with rsync

Actual measurement of transcontinental WAN (United States `c1` → Europe `n1`, `s1` collaborative seeding, RTT 65 ms):

### A la carte mode vs `rsync`

| Data set | Size | `sync0` Single Point<br>(Mbps) | `rsync`<br>(Mbps) | A la carte / `rsync` |
| :--- | ---: | ---: | ---: | ---: |
| `linux-7.3.3.tar.xz`(not compressible) | 155 MB | **218.88** | 107.05 | **2.04×** |
| `linux-7.3.3.tar`(compressible) | 1.6 GB | **580.26** | 254.71 | **2.28×** |
| `linux-7.3.3.tar`(local change increment) | 1.6 GB | **5,661.76** | 1,404.10 | **4.03×** |
| `linux-7.3.3/` (95,979 small files) | 1.5 GB | **486.19** | 292.23 | **1.66×** |

### P2P dual source mode vs `rsync`

| Data set | Size | `sync0` P2P Dual Source<br>(Mbps) | `rsync`<br>(Mbps) | P2P / `rsync` |
| :--- | ---: | ---: | ---: | ---: |
| `linux-7.3.3.tar.xz`(not compressible) | 155 MB | **374.36** | 107.05 | **3.50×** |
| `linux-7.3.3.tar`(compressible) | 1.6 GB | **1,648.27** | 254.71 | **6.47×** |
| `linux-7.3.3.tar`(local change increment) | 1.6 GB | **5,367.18** | 1,404.10 | **3.82×** |
| `linux-7.3.3/` (95,979 small files) | 1.5 GB | **774.98** | 292.23 | **2.65×** |

For more link data and reproduction scripts, see [Performance Measurement Report](../../doc/zh/benchmark.md).

## Get started quickly

The default configuration directory is `~/.config/sync0` (can be switched via `-c <directory>`).

### 1. View node address and set business card

```bash
# View the local node address (automatically generate a key for the first run)
sync0 id

# Generate a personal self-signed business card (supports nickname, city code, email, website and introduction)
sync0 profile -u alice --region SHA --email alice@example.com --url https://example.com -b "Shanghai node"
```

### 2. Publish multiple sharing groups and set member permissions (`.nt` Configuration)

`sync0` Configure using the [NestedText](https://nestedtext.org) (`.nt`) format. Create a separate `.nt` file for each member in the `users_dir` directory; when `write_prefix` is omitted, `rw` members are allowed to upload to the root directory of the sharing group by default.

1. Member configuration example (`~/.config/sync0/users/`):

`~/.config/sync0/users/alice.nt` (read-only member, rate limited `80MB`):

```yaml
id: 8J9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ab_c
perm: ro
rate: 80MB
```

`~/.config/sync0/users/bob.nt` (Restricted upload members: only allowed to upload to specified subdirectories):

```yaml
id: 7K8bCdEfGhIjKlMnOpQrStUvWxYz0123456789de_f
perm: rw
write_prefix:
  - uploads/bob
  - shared/common
```

`~/.config/sync0/users/charlie.nt`(root directory upload member):

```yaml
id: 9M0cDeFgHiJkLmNoPqRsTuVwXyZ0123456789gh_i
perm: rw
```

2. Sharing group configuration example (`~/.config/sync0/config.nt`):

```yaml
users_dir: ./users

groups:
  dataset:
    path: ./data
    auth: false
    perm: ro
    rate: 50MB

  models:
    path: ./models
    auth: false
    perm: ro
    rate: 1GB

  team-vault:
    path: ./vault
    auth: true
    perm: ro
    rate: 512KB
    users:
      - alice
      - bob
      - charlie
```

Start sharing service:

```bash
# Load ~/.config/sync0/config.nt to start
sync0 share --region SHA

# Or publish multiple sharing groups and authorize members directly through the command line
sync0 share dataset:./data team-vault:./vault \
  --auth \
  --allow-ro 8J9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ab_c \
  --allow-rw 7K8bCdEfGhIjKlMnOpQrStUvWxYz0123456789de_f:uploads/bob,shared/common \
  --allow-rw 9M0cDeFgHiJkLmNoPqRsTuVwXyZ0123456789gh_i
```

### 3. Pull full content or multiple selections of files and directories (`sync0 pull`)

```bash
# Pull the entire dataset sharing group to the local ./local_data
sync0 pull dataset:// ./local_data -p <node address>

# Multi-select synchronization: pull single files and multiple subdirectories at the same time
sync0 pull dataset://docs/readme.md,assets/icons,src/core ./local_data -p <node address>
```

### 4. Upload a file or directory (`sync0 push`)

```bash
# Upload to the root directory of the sharing group
sync0 push team-vault:// ./new_release -p <node address>

# Upload to authorized subdirectory prefix
sync0 push team-vault://uploads/bob/report.pdf ./report.pdf -p <node address>
```

### 5. Subscribe to automatic sync and seeding (`sync0 sub`)

While maintaining real-time synchronization, the subscribing node automatically serves as a seed source to provide concurrent downloads for other nodes:

```bash
# Subscribe to the entire sharing group and automatically seed
sync0 sub dataset:// ./local_mirror -p <node address>

# Multi-select to subscribe to specified files and subdirectories and seed them
sync0 sub dataset://models/llama.onnx,configs ./local_mirror -p <node address>
```

### 6. Multi-machine group two-way synchronization (`sync0 group`)

```bash
# Fully join the group and two-way synchronization
sync0 group team-docs:// ./docs -p <node address>

# Multi-select specified directories and files in the synchronization group
sync0 group team-docs://wal,meta.json ./docs -p <node address>
```

### 7. Point-to-point direct transmission between two machines (`send` / `recv`)

There is no need to pre-configure a sharing group to temporarily transfer files or directories between two machines:

```bash
# Receiver monitoring
sync0 recv 0.0.0.0:9000 ./backup

# Direct transmission from the sender (optional --delete mirror to clean up excess files, --rate speed limit)
sync0 send ./project 192.168.1.10:9000
```

### 8. Multi-language switching

Supports 75 languages, automatically switches according to the system language by default, or can be specified through `SYNC0_LANG`:

```bash
SYNC0_LANG=en sync0 --help
SYNC0_LANG=ja sync0 --help
SYNC0_LANG=de sync0 --help
```