Yoink banner

Yoink

5 devlogs
13h 54m 59s

Synchronize a folder over to a distant server. It’s basically a git but overkilled and made in rust šŸ¦€

Check out the demo video if you don’t want to run yourself, or run the demo yourself! Instructions in the DEMO tab :)

Also yea dont ask about the banner im bad at that stuff 😭

Demo Repository

Loading README...

Kubik

didnt think of doing a devlog again but I guess I wasn’t done lol

what changed again

  • SUPPORT FOR LARGE FILES. like….. DAMN IT WAS SILENTLY FAILING 😭 (now it works super duper fine)
  • Multithreading! Using rayon, the client will now send multiple files in parallel ⚔
  • bug fix: change ā€˜\’ from windows path to ā€˜/’ >:(
  • smaller demo binaries (thanks upx)
  • hash while receiving file (not re-read again) = faster :)

what nex-

nothing. i’m done. unless bugs. (there will be bugs lol)

Attachment
0
Kubik

Shipped this project!

Hours: 12.12
Cookies: šŸŖ 325
Multiplier: 26.78 cookies/hr

Thanks for following me during this journey!

It wasn’t TOOOO hard to build this, but still challenging!

Had to build a rust http server for the first time! That was pretty cool :D

YOINKā„¢

Kubik

Oh boy! I thikn i’m doneeee :DDDD

What’s neewww

  • Now supports multi-path on the client
  • Wait for the path to be available, will retry if not (max 15 times, 2 min before each re-try)

I guess i have a readme now and I made a working demo working :)
HOW DID IT TAKE 4H30 OH MY-

Attachment
0
Kubik

Basically done! I mean it works now, just have a few more ideas to improve :)

what new

  • New .yoinkconfig file (server & client) to configure at compile time
  • Added the .yoinkignore file to specify which paths to ignore when transferring
  • Added the .yoinkpass config for the server

what now

  • Make it support multi paths to transfer (not just one)
  • Wait for a path to be available (like F: for a USB stick to backup)
Attachment
Attachment
Attachment
0
Kubik

PROGRESS!!! Finished the diff and file uploader!

Whats new ✨

  • File sending & receiving
  • Hash checks (will update files when changed)

and now???

oh boy still a lot lol

  • a ā€œper user passwordā€ system
  • a ā€œwhat to ignoreā€ file config (like node_modules, cargo’s target, dist, build…..)
  • delete files when removed?? (no sure i will do that, i personally dont need it)

image:

on the left: the client sent all the files (it does not log anything tho)
on the right: the server received all the files the client had in the configured folder

Attachment
0
Kubik

Hi!! I’m still prototyping a lot, but I got some progress!

titleā„¢

Right now, the client reads a pre-defined folder (./test) and sends all the files path it found to the server. The server replies with the files that are not up to date (all for now, database doesn’t exist yet) and the client logs the response.

Next steps!

send the files, and implement the database on the server
oh and check the hash! the server will reply with the known hash of files it already has so that the client can check if it changed :)

Attachment
0