https://github.com/enbop/fungi
Turn multiple devices into one unified system. A platform built for seamless multi-device integration.
https://github.com/enbop/fungi
file-transfer flutter flutter-apps ftp gateway libp2p nas p2p port-forwarding remote-access remote-control rust wasi webdav
Last synced: 4 months ago
JSON representation
Turn multiple devices into one unified system. A platform built for seamless multi-device integration.
- Host: GitHub
- URL: https://github.com/enbop/fungi
- Owner: enbop
- License: apache-2.0
- Created: 2023-07-16T11:55:05.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2026-02-28T10:54:41.000Z (4 months ago)
- Last Synced: 2026-02-28T14:16:41.482Z (4 months ago)
- Topics: file-transfer, flutter, flutter-apps, ftp, gateway, libp2p, nas, p2p, port-forwarding, remote-access, remote-control, rust, wasi, webdav
- Language: Rust
- Homepage: https://fungi.rs
- Size: 2.34 MB
- Stars: 90
- Watchers: 5
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Fungi
Turn Multiple Devices Into One Unified System
Fungi is a gateway for seamlessly exporting your services within a private P2P network.
With Fungi, you can securely `forward ports`, `transfer files`, `deploy apps`, or simply use it as a lightweight NAS.
This repository contains the **Core Daemon** and **CLI** tools.
> **Looking for the GUI?**
> Check out **[fungi-app](https://github.com/enbop/fungi-app)**, the official Flutter-based graphical interface for Fungi.
## Key Features
* **P2P Connectivity**: Built on [rust-libp2p](https://github.com/libp2p/rust-libp2p), supporting automatic NAT traversal and mDNS discovery.
* **Secure**: End-to-end encryption with PeerID-based authentication.
* **File Transfer**: Mount remote folders as local drives (FTP/WebDAV).
* **gRPC Interface**: The daemon exposes a gRPC API, allowing any client (CLI, GUI, scripts) to control it.
* **Modular architecture:**
* **`fungi-daemon`**: The background service that handles P2P networking and manage services.
* **`fungi-cli`**: A command-line tool to interact with the daemon via gRPC.
* **WASI Runtime**: (Experimental) WASI sandbox for cross-platform app deployment. [Learn more](https://fungi.rs/docs/wasi)
## Documentation
πFor full documentation, visit [fungi.rs/docs](https://fungi.rs/docs/intro).
## Build from Source
### Prerequisites
**All platforms require:**
- Rust toolchain
- Protocol Buffers compiler (protoc)
#### Install Dependencies
**Ubuntu/Debian:**
```bash
sudo apt-get install -y protobuf-compiler clang cmake ninja-build pkg-config
```
**macOS:**
```bash
brew install protobuf
```
**Windows:**
- Install build tools for aws-lc-rs [build dependencies](https://aws.github.io/aws-lc-rs/requirements/windows.html) (Ensure you have at least: C/C++ Compiler, CMake, NASM)
- Install protoc: `choco install protoc`
### Build
```bash
cargo build --release --bin fungi
```
Binary location: `./target/release/fungi`
## Platform Support
| Platform | Status |
|----------|--------|
| macOS | β
Ready |
| Windows | β
Ready |
| Linux | β
Ready |
| Android | β
Ready |
| iOS | π§ In progress |
## Contributing
We welcome all contributions:
- π Bug reports and fixes
- β¨ New features
- π Documentation
- π¨ UI improvements
## License
Apache License 2.0