You are browsing as a guest. Sign up (or log in) to start making projects!

fabianbuthere

@fabianbuthere

Joined June 6th, 2026

  • 8Devlogs
  • 4Projects
  • 2Ships
  • 15Votes
Ship Pending review

A simple CLI-tool to share data quickly, without needing to trust external servers with your data.

I spend lots of time transferring video and audio files from my main PC to my or to my audio workstation PC. This meant uploading my file to some drive, just so I can download it again. And doing that on 20Mbit/s is less than great.
After recently having learnt Rust's async and networking functionalities, I thought, why not make a tool for that?

So I wrote lift, which allows me to send files between my devices at atleast twice the speed of using a drive, because the files are never uploaded to anywhere. It's also more secure, because you don't have to trust Google, Microsoft, Dropbox, Limewire or anyone else with your files.

It also makes your files accessible even from outside your network using your generated link with bore. But, if having an external server potentially knowing the route to your file already seems too sketchy for you, you can just configure another bore server.

If you just need to share files within your own network you can use local mode, which will make the file accessible only on your LAN, stripping the need for a bore server.

If you want to be 1000% sure, you can also encrypt the file using your own or a randomly generated passphrase, which the receiving device can decrypt with the age CLI utility.

  • 2 devlogs
  • 4h
Try project → See source code →
Open comments for this post

1h 18m 42s logged

Implemented local and encrypted modes, ready for v1.4.0 which will be shipped! Lift can now:

  • encrypt files using a custom or random passphrase using age
  • open files only for access on the local network, if no outside communication is needed (also stripping the need for an external bore server)
0
0
7
Open comments for this post

2h 32m 17s logged

v1.3.0 just shipped! I switched from warp to axum to use async streams, which ensure that the TCP stream is held until the download is finished - which enables sharing of bigger files, even on slow internet connections.
I’m really proud of the small methods for optimisation I could find - and that I managed to build without a single clippy-all warning!
The next step is encryption, to ward against man-in-the-middle attacks - although it’s already really difficult to get a hold of any data transmitted over lift.

Install it now via cargo install lifter :3

0
0
6
Ship

The product is not nearly as exciting as the code for it. I had to work with WebSockets, Slack's (confusing (at least for me)) API and remote deployment (on Railway), including Docker. All in all a fun little project! And in Rust. I love Rust.

Try project → See source code →
Open comments for this post

37m 18s logged

The bot is running! I first set up shuttle, and only realised it was discontinued a few months ago when I tried to deploy. Now I use railway, and it works!

0
0
2
Open comments for this post

2h 4m 3s logged

The bot is running! Getting the WebSocket to work was rather easy, the Slack API is really hard to navigate though.
Not sure if I can host it on Nest (or similar services) if it is not NodeJS, that’s my next stop.

0
0
2
Open comments for this post

22m 3s logged

Finished the designs for the PCB and the case. Importing the plate into FreeCAD was a hustle, but I managed to figure it out by reading through 6 year old blog posts.
I was surprised that the hackpad guide uses non-FOSS software, but well.
Onto the firmware!

0
0
1

Followers

Loading…