# matrixseven/file-transfer-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/matrixseven-file-transfer-go).**

4,660 stars · 594 forks · TypeScript · mit

## Links

- GitHub: https://github.com/MatrixSeven/file-transfer-go
- Homepage: https://transfer.52python.cn
- awesome-repositories: https://awesome-repositories.com/repository/matrixseven-file-transfer-go.md

## Description

This is a secure peer-to-peer file sharing tool that transfers data directly between devices using end-to-end encryption and ephemeral session codes. Files are split into fixed-size chunks with individual integrity hashes, allowing interrupted transfers to resume from the last verified chunk without starting over. All transferred data stays solely in RAM during transit, never written to persistent storage on either peer or any intermediate relay.

Beyond file transfer, the tool also provides real-time instant messaging and live screen sharing over the same peer-to-peer connections. Each session generates a unique encryption key via an ephemeral Diffie-Hellman exchange, ensuring data is encrypted locally and decrypted only on the receiving peer. The session codes expire after disconnection, preventing reuse. When direct peer connections cannot be established due to restrictive firewalls or NAT devices, the tool can tunnel the initial handshake through a user-specified relay server before switching to a direct peer-to-peer link.

The communication library supports transferring multiple files, directories, and large files with resumable transfers, and allows configuration of relay server addresses for NAT traversal. Conncection parameters are synchronized between two devices using a short-lived alphanumeric code without requiring any central server.

## Tags

### Networking & Communication

- [Encrypted Peer-to-Peer Transfers](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/peer-to-peer-file-sharing/encrypted-peer-to-peer-transfers.md) — Transfers files directly between devices using peer connections with end-to-end encryption and relay server support for NAT traversal.
- [Chunked Resumable Transfers](https://awesome-repositories.com/f/networking-communication/resumable-file-transfers/chunked-resumable-transfers.md) — Splits files into verified chunks and resumes transfers from the last intact chunk after interruption.
- [Peer-to-Peer Messaging](https://awesome-repositories.com/f/networking-communication/instant-messaging-services/peer-to-peer-messaging.md) — Sends short text messages in real time from one device to another without any server storing the message content.
- [Relay-Assisted Handshakes](https://awesome-repositories.com/f/networking-communication/nat-traversal-mechanisms/relay-assisted-handshakes.md) — Tunnels the initial handshake through a user-specified relay server before switching to a direct peer-to-peer link.
- [Screen Sharing Channels](https://awesome-repositories.com/f/networking-communication/peer-to-peer-tunneling/peer-to-peer-media-libraries/screen-sharing-channels.md) — Enables broadcasting a device's screen in real time to another device for remote viewing or demonstrations. ([source](https://cdn.jsdelivr.net/gh/matrixseven/file-transfer-go@main/README.md))
- [Text Messaging Channels](https://awesome-repositories.com/f/networking-communication/peer-to-peer-tunneling/peer-to-peer-media-libraries/text-messaging-channels.md) — Provides real-time text messaging from one device to another without storing content on any server. ([source](https://cdn.jsdelivr.net/gh/matrixseven/file-transfer-go@main/README.md))

### Security & Cryptography

- [Per-Session Key Exchanges](https://awesome-repositories.com/f/security-cryptography/end-to-end-encryption/per-session-key-exchanges.md) — Generates a unique symmetric key per session via ephemeral Diffie-Hellman exchange for all file and message data.
- [Ephemeral Code Exchanges](https://awesome-repositories.com/f/security-cryptography/key-exchange-protocols/session-based-exchanges/ephemeral-code-exchanges.md) — Pairs devices via short-lived alphanumeric codes that synchronize encryption keys and connection parameters without a central server.
- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — Encrypts data locally and decrypts it only on the receiving peer, with session codes that expire after disconnection.

### Web Development

- [Encrypted Peer-to-Peer Transfers](https://awesome-repositories.com/f/web-development/peer-to-peer-transfer-engines/encrypted-peer-to-peer-transfers.md) — Enables data transfer directly between devices with end-to-end encryption and session codes that expire after disconnection. ([source](https://transfer.52python.cn/help))
- [Resumable File Transfers](https://awesome-repositories.com/f/web-development/peer-to-peer-transfer-engines/resumable-file-transfers.md) — Supports direct file transfers between devices with multiple files, directories, and resumable large transfers. ([source](https://cdn.jsdelivr.net/gh/matrixseven/file-transfer-go@main/README.md))

### Data & Databases

- [In-Memory Data Stores](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage-architectures/in-memory-data-stores.md) — Keeps all transferred data solely in RAM during transit, never writing to persistent storage on any peer or relay.

### Development Tools & Productivity

- [Screen Sharing](https://awesome-repositories.com/f/development-tools-productivity/screen-capture-tools/screen-sharing.md) — Broadcasts a device's screen live to another device over a peer connection for remote viewing or demonstrations.
