FriendCloudProto/README.md
2025-10-06 15:54:05 +01:00

54 lines
3.4 KiB
Markdown

# FriendCloud (aka SamoyedShare?)
🐕☁🐕☁🐕☁🐕☁🐕
FriendCloud is a decentralised mesh-network-based file-sharing platform for you and your friends!
This repository is for the **backend** (or the reference implementation, at least). See also the [repository for the frontend]().
⚠ Currently FriendCloud is in SUPER WOBBLY TURBO-ALPHA. Don't use this! Your files may crumble into dust! Security is an unknown concept, still but a theory in the mind's-eye of divine astrologers! The database is but a collection of JSON files in a worm-infested crypt, left weak and vulnerable to the ravages of entropy!
# About FriendCloud
- It's like NextCloud; you have your own private space for you and your friends to store files, but it's decentralised and no one person controls it!
- It's like Syncthing; you can sync your files among all your friend's devices, but not everyone needs to have a copy of every file!
- It's like Git; file and object changes are tracked and merged, but (mostly) automagically!
- It's like Bittorrent; files are distributed among a bunch of peers, but you can view and open them with your normal file browser!
- It's like nothing anyone's ever made! Probably for good reason!
(For clarity, FriendCloud is not intended as a replacement for the above services, and is aiming for a slightly different use-case)
# Features
FriendCloud currently supports:
- Connecting to a bunch of other peers and synchronizing state (i.e. what peers and files exist)
- Mounting the virtual filesystem using FUSE (on Linux & Windows)
- Downloading/streaming files by opening them in your file browser
- Creating cloud folders and moving files in your file browser
- Zero security of any kind!!
Currently planned:
- Open API so people can write their own frontend/backend clients if they want (probably better than mine)
- File monitoring/tracking
- Being able to securely invite your friends to the network
- Some kind of public-key-based encrypted transport/user authentication
- Optional remote file modification (other people can change the files you've shared)
- JavaFX-based frontend for sharing/managing the network
- File replication; peers can donate some of their disk space for automatically saving redundant copies of each other's files
- And possibly downloading files on each other's behalf, for peers that can't connect to each other (or are in differnt timezones)
- KIO integration, for KDE on Linux
- One-user, many-peer; you can somehow prove that you control multiple peers and they all share permissions so you can manage your files from each of them
Maybe one day:
- One-peer, many-user; multiple (system) user accounts on the same machine can all have their own FriendCloud user accounts on the same network, even though there's just the one peer (running as a system daemon)
- GIO integration, for GNOME on Linux
- Windows [this thing](https://learn.microsoft.com/en-us/windows/win32/shell/nse-works) for Wandow 5 Macro suport (it's 3am)
- Maybe we can implement CalDAV or something and you can sync your calendar through it or some shit. attack and dethrone NextCloud
- I had weird vague dreams of it reading the metadata of your files like artist, album and stuff and it would automatically organise them for you. but you can just do that manually
- make wplace in it.
- You can be a member of multiple different networks and have the same files shared to each of them
# Building
Git! Java! Maven! I believe in you!