Git Product home page Git Product logo

transmitic / transmitic Goto Github PK

View Code? Open in Web Editor NEW
59.0 3.0 2.0 608 KB

Encrypted, peer to peer, file transfer program :: https://discord.gg/tRT3J6T :: https://www.reddit.com/r/transmitic/ :: https://twitter.com/transmitic

Home Page: https://transmitic.net

HTML 51.60% Rust 21.96% CSS 13.89% JavaScript 1.18% Python 11.36%
p2p peer-to-peer aes file transfer encrypted file-sharing aes-encryption file-transfer f2f friend-to-friend rust rust-lang linux windows linux-desktop windows-desktop macos large-file-transfers self-hosted

transmitic's Introduction

Transmitic Logo

Transmitic Beta

Encrypted, peer to peer, file transfer and sharing, with download pause and resume
DiscordRedditTwitterMastodontransmitic.net

  • Encrypted
  • P2P
  • Built with Rust
  • No third party server involved
  • No file size limits

The goal is to make transferring files and folders as easy as possible.
If you have ever thought I just want to send these files directly from this computer to another, Transmitic can help.

How it Works

  1. Users exchange Public IDs that Transmitic automatically generates.
  2. Add users' Public IDs and IPs that you want to share with.
  3. Add files or folders you want to share, and which users you want to share with.
  4. Turn sharing on! Users can choose which files they want to download directly from your device.
  5. View all files that are shared with you, and download directly from the other user's device.
  6. Connections are encrypted with AES256-GCM.
  7. Users behind NATs and firewalls can use the "Reverse Connection" feature to still share with users that do not have networking limitations.

See Demo below

Features

  1. Secure
    1. AES-GCM 256 Encryption
    2. Ed25519 Signing Keys
    3. x25519 Diffie-Hellman Key Exchange
  2. Easy to use GUI
  3. Cross Platform
    1. Windows MSI Installer & Portable
    2. macOS Universal Bundle & Portable
    3. Linux Portable
  4. Private
    1. P2P
    2. No third party servers in any way
  5. Lan & Internet
  6. Share files and folders
  7. No file size limits
  8. Pause and Resume
    1. Downloads can be paused, or interrupted, but will continue where they left off
  9. Reverse Connection
    1. If you're behind a NAT, or have network limitations, but your Users do not, you can still share with each other.

Support Transmitic

Please 🌟 the repo!

If you get value from Transmitic, please donate

Buy Me A Coffee    ko-fi     Patreon Patreon

Comparison To Other Tools

FTP
Transmitic is most similar to FTP (though the FTP protocol is not supported). You choose which files and folders you want to download from other computers that are shared with you.

BitTorrent
Transmitic does not support BitTorrent, or BitTorrent like functionality, in that Transmitic cannot download the same file from multiple peers to download it faster.

File Syncing
Transmitic is not designed for "file syncing" and should not be used for this purpose.

Development Status

Transmitic is currently in beta. Please report any bugs that you encounter.

More Info

See wiki for more information, networking help, and limitations https://github.com/transmitic/transmitic/wiki

Contributing

The only area of contribution that is needed at this time is a review of the cryptography usage.
If you are interested, please visit the Discord.

Dependencies

Future Features

  • UPnP
  • Transmitic Discovery
    • Server to discover users without requiring IPs to be known by users (optional feature)
  • Auto updates
  • Transmitic Mini
    • CLI only version with minimal dependencies

See GitHub Issues and Discussions for more

Cryptography

  • Public, Private signing keys generated with ring
  • Signing ring keys ("Public IDs") are exchanged out of band, manually
  • Diffie-Hellman key generation with x25519_dalek
    • Diffie-Hellman keys are regenerated for every new TCP stream. Never reused.
  • Diffie-Hellman x25519_dalek keys are signed with the ring keys
  • Remote user verifies x25519_dalek key with that user's ring public key ("Public ID")
  • AES key generated
  • All further communication encrypted with AES-GCM with ring

See these modules to review the cryptography in transmitic-core

Demo

Transmitic

Transmitic.Demo.v0.12.0.mp4

Pricing

At this time Transmitic is free for personal and commercial use.

Build

Prebuilt binaries available at Releases

$ mkdir transmitic_workspace
$ cd transmitic_workspace
$ git clone [email protected]:transmitic/transmitic.git
$ git clone [email protected]:transmitic/transmitic-core.git

# You need the sciter 4 dll. Either pull the repo and put the x64 folder in path
#   OR just download sciter.dll, put it in your sys path, or next to transmitic.exe
$ git clone [email protected]:sciter-engine/sciter-js-sdk.git
# Add to sys path sciter-js-sdk\bin\windows\x64

# Create transmitic_workspace\Cargo.toml
[workspace]

members = [
    "transmitic",
    "transmitic-core"
]


$ cargo run -p transmitic

License

This project is provided "AS IS" and makes no warranties, express or implied.

To be determined.

transmitic's People

Contributors

andrew-shay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zzsoszz ted-vo

transmitic's Issues

Reverse connection

For situation when one user can accept incoming connections, but the other can't, allow the user who can't, to connect to the other and allow the other to use that connection to download

Periodic Checks
Check on demand

GUI Redesign

GUI Design 2

Currently recreating a Win10 UI in Sciter.
I'm not loving that the menu bar can take 2 rows when the window is small enough.
I could make separate pages for My Downloads and Downloading from me, but having 1 page to see everything is nice.

2021-03-21

Screenshot 3_21_2021 8_09_38 PM (3)

Rewrite v0.10.0

Transmitic is being rewritten and will be in v0.10.0

(Updated April 4 2022)

  • GUI polished
  • GUI -> backend stubs
  • reading/writing/verifying config
  • Downloader and uploader base threads
  • Loading Shared With Me
  • Update My Download status in UI
  • Update Downloading from me status in UI
  • Download UI actions like Cancel, Pause etc
  • Remove dead threads
  • Properly handle some unwraps
  • Handle paniced threads
  • Warnings
  • todo()!s
  • Sciter minimal packaging
  • TODOs
  • Clippy
  • Format
  • Pre-release general cleanup
  • Code Review
  • Local Testing
  • Build release
  • Testing release builds with users
  • Release v0.10.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.