MCPcopy Index your code
hub / github.com/enbop/fungi

github.com/enbop/fungi @v0.6.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.1 ↗ · + Follow
1,461 symbols 3,505 edges 111 files 146 documented · 10% updated 11d agonightly · 2025-09-03★ 1321 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Fungi logo Fungi

Build a private P2P device network for capability-first services

With Fungi, you can securely connect your own devices, run container or WASI services under explicit runtime policy, manage remote services with simple commands, and access them locally without exposing them to the public internet.

Demo
Build a secure private P2P network with ease:

Build a secure private P2P network | | Create a remote service and access it locally right away:

Create and start a remote service locally

(This demo shows creating a no-client file manager service running on a remote device, and accessing it with a browser locally)

Need help or want to follow updates? Join the Fungi Discord.

Key Features

  • P2P Connectivity: Built on rust-libp2p, supporting automatic NAT traversal and mDNS discovery.
  • Secure: End-to-end encryption with PeerID-based authentication.
  • Fast and Lightweight: Built in Rust, around 20 MB idle RAM, with support for macOS, Windows, Linux, and Android.
  • Sandboxed Services: Run sandboxed services with the built-in WASI runtime or an optional Docker backend.
  • Simple Remote Service Control: Use a few commands like pull, start, stop, and remove to manage remote services locally.
  • Port Forwarding and File Transfer: forward any TCP service and includes a built-in file transfer module, making it easy to create a lightweight NAS.
  • 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.
    • fungi-app: (optional, external) An official GUI client for easier management (see fungi-app).

Note on file transfer The older FTP/WebDAV-style file transfer is being gradually deprecated in favor of Sandboxed Services.

Download

macOS / Linux quick install:

curl -fsSL https://fungi.rs/install.sh | sh

Documentation

Start with the quick starts:

Full documentation: fungi.rs/docs.

Platform Support

Platform Status
macOS ✅ Ready
Windows ✅ Ready
Linux ✅ Ready
Android ✅ Ready
iOS 🚧 In progress

Development

Starting from 2026, the Fungi project actively adopts AI-assisted coding.

Code Quality

  • Rust ensures safety in most cases
  • Modular design
  • Following TDD as much as possible

License

Apache License 2.0

Extension points exported contracts — how you extend this code

RuntimeProvider (Interface)
(no doc) [2 implementers]
crates/daemon/src/runtime/providers.rs
FungiDir (Interface)
(no doc) [1 implementers]
crates/config/src/lib.rs
FileTransferRpc (Interface)
(no doc) [1 implementers]
crates/daemon/src/controls/file_transfer/mod.rs

Core symbols most depended-on inside this repo

lock
called by 169
crates/libp2p-stream/src/shared.rs
fatal
called by 86
fungi/src/commands/fungi_control/shared.rs
fatal_grpc
called by 70
fungi/src/commands/fungi_control/shared.rs
config
called by 56
crates/daemon/src/daemon.rs
get
called by 35
crates/daemon/src/controls/file_transfer/ftp_impl.rs
remove
called by 28
crates/daemon/src/runtime/control.rs
path
called by 26
crates/fs/src/lib.rs
update_and_save
called by 23
crates/config/src/lib.rs

Shape

Method 734
Function 352
Class 327
Enum 44
Interface 4

Languages

Rust100%

Modules by API surface

crates/daemon-grpc/src/generated/fungi_daemon.rs223 symbols
crates/daemon-grpc/src/lib.rs79 symbols
crates/config/src/lib.rs50 symbols
crates/fs/src/lib.rs49 symbols
crates/swarm/src/connection_state.rs41 symbols
crates/daemon/src/api/runtime.rs38 symbols
crates/daemon/src/controls/file_transfer/webdav_impl.rs37 symbols
crates/swarm/src/libp2p.rs36 symbols
crates/daemon/src/controls/file_transfer/file_transfer_client.rs32 symbols
crates/config/src/address_book.rs31 symbols
crates/daemon/src/runtime/model.rs29 symbols
crates/daemon/src/runtime/control.rs29 symbols

For agents

$ claude mcp add fungi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page