Skip to main content

py-ipfs-lite

py-ipfs-lite is a lightweight, embeddable Python IPFS peer built on top of py-libp2p. It provides the core features of IPFS (Blockstore, Bitswap, DHT, IPNI, IPNS, and IPLD DAGs) without the overhead of a heavy Kubo daemon.

It is designed to be highly interoperable with standard IPFS implementations like Kubo and go-ipfs-lite, natively supporting dag-cbor, CARv1 file import/export, Bitswap streaming, and more.

Features

  • Embedded IPFS Node: Run a complete IPFS node purely in Python using trio or standard async.
  • Bitswap Protocol: Interoperate and exchange blocks directly with Kubo daemons.
  • KadDHT & IPNI Routing: Local block lookups with lightning-fast routing via the KadDHT network and Delegated HTTP IPNI (cid.contact).
  • IPLD DAG Support: Fully supports dag-pb, dag-cbor, and dag-json for building decentralized knowledge graphs, versioned datasets, and agent memory chains.
  • Offline Data Bundles (CAR): Export and import full or partial DAGs as Content Addressable aRchives (.car).
  • IPNS Mutable Pointers: Publish and resolve cryptographically signed mutable pointers (IPNS).
  • FastAPI HTTP Daemon: A drop-in, Kubo-compatible HTTP API exposing /api/v0 endpoints for adding files, fetching DAGs, and pinning.
  • Prometheus Metrics: Integrated observability for garbage collection, block sizes, and Bitswap traffic.

Installation

py-ipfs-lite uses uv for dependency management.

# Clone the repository
git clone https://github.com/IPFS-Meshkit/py-ipfs-lite.git
cd py-ipfs-lite

# Install dependencies using uv
uv sync

Quickstart

1. The Python SDK (Embedded Peer)

You can run an IPFS peer directly inside your Python application using trio:

import trio
from py_ipfs_lite.peer import Peer
from py_ipfs_lite.config import Config

async def main():
    # Start an ephemeral in-memory peer
    peer = Peer(Config(blockstore_type="memory"), listen_addrs=["/ip4/127.0.0.1/tcp/0"])
    await peer.start()

    # Add a file
    cid = await peer.add_file("/path/to/my/file.txt")
    print(f"Added file with CID: {cid}")

    # Build an IPLD DAG
    node_cid = await peer.add_node({"title": "Hello World", "author": "py-ipfs-lite"}, codec="dag-cbor")
    print(f"Added DAG node with CID: {node_cid}")

    # Publish to IPNS
    ipns_name = await peer.publish_name(f"/ipfs/{node_cid}")
    print(f"Published to IPNS: {ipns_name}")

    await peer.close()

if __name__ == "__main__":
    trio.run(main)

2. The CLI Daemon & HTTP API

You can spin up py-ipfs-lite as a standalone daemon that provides a Kubo-compatible HTTP API.

# Run the daemon on port 4001, exposing the HTTP API on port 5001
uv run py-ipfs-lite daemon --api --api-port 5001

Then you can use the standard HTTP API to interact with it:

# Add a file
curl -X POST -F file=@test.txt http://127.0.0.1:5001/api/v0/add

# Fetch an IPLD node
curl -X POST "http://127.0.0.1:5001/api/v0/dag/get?arg=bafy..."

What's Next

I want to… Go to…
Understand how py-ipfs-lite is structured internally docs/architecture.md
Build verifiable AI agent memory / RAG pipelines docs/guides/ai-agents-and-rag.md
Export a DAG as a CAR file for Filecoin storage docs/guides/car-files-and-filecoin.md
Use IPNS mutable pointers and understand the trust model docs/guides/ipns.md
Interoperate with a live Kubo daemon over Bitswap docs/guides/interop-with-kubo.md
See the full list of all 21 examples with one-line descriptions docs/reference/examples-index.md
Browse all documentation docs/index.md

License

MIT License

Release files for py-ipfs-lite 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-ipfs-lite 0.1.1
File Size Uploaded
py_ipfs_lite-0.1.1.tar.gz 34.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-ipfs-lite 0.1.1
File Interpreter ABI Platform
py_ipfs_lite-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 65.6 kB

Release files / py_ipfs_lite-0.1.1.tar.gz

Download URL py_ipfs_lite-0.1.1.tar.gz
Size 34.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1fbd7c86e1d9b774e91188da04739e1f94798e783b6eac38a800294cf5b2ac18
BLAKE2b-256 checksum
How to use checksums
1a105feb652e04991904938da689fc752fa335e022f5dee0fe5a0a52ce9bc203
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

Release files / py_ipfs_lite-0.1.1-py3-none-any.whl

Download URL py_ipfs_lite-0.1.1-py3-none-any.whl
Size 30.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
459341d7f9de642e4f84e9fc870113408a361000540fca3a694a58cf766b6bfc
BLAKE2b-256 checksum
How to use checksums
97a3d3c9edd50bf8bdbac4739b8185788b9fcdc74f1ef4d75bf6834eaef8c85b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page