Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hsanjuan/ipfs-lite
IPFS-Lite is an embeddable, lightweight IPFS-network peer for IPLD applications
https://github.com/hsanjuan/ipfs-lite
Last synced: 2 days ago
JSON representation
IPFS-Lite is an embeddable, lightweight IPFS-network peer for IPLD applications
- Host: GitHub
- URL: https://github.com/hsanjuan/ipfs-lite
- Owner: hsanjuan
- License: apache-2.0
- Created: 2019-03-09T18:30:44.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T04:57:37.000Z (26 days ago)
- Last Synced: 2024-12-05T03:04:23.417Z (9 days ago)
- Language: Go
- Homepage:
- Size: 106 MB
- Stars: 342
- Watchers: 10
- Forks: 58
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IPFS-Lite
[![Build Status](https://github.com/hsanjuan/ipfs-lite/actions/workflows/go.yml/badge.svg)](https://github.com/hsanjuan/ipfs-lite/actions/workflows/go.yml)
[![Go Reference](https://pkg.go.dev/badge/github.com/hsanjuan/ipfs-lite.svg)](https://pkg.go.dev/github.com/hsanjuan/ipfs-lite)IPFS-Lite is an embeddable, lightweight IPFS peer which runs the minimal setup
to provide an `ipld.DAGService` and UnixFS-files addition and retrieval.It can:
* Add, Get, Remove IPLD Nodes to/from the IPFS Network (remove is a local blockstore operation).
* Add single files (chunk, build the DAG and Add) from a `io.Reader`.
* Get single files given a their CID.It needs:
* A [libp2p Host](https://pkg.go.dev/github.com/libp2p/go-libp2p#New)
* A [libp2p DHT](https://pkg.go.dev/github.com/libp2p/go-libp2p-kad-dht#New)
* A [datastore](https://pkg.go.dev/github.com/ipfs/go-datastore), such as [BadgerDB](https://pkg.go.dev/github.com/ipfs/go-ds-badger), [go-ds-flatfs](https://pkg.go.dev/github.com/ipfs/go-ds-flatfs) or an [in-memory](https://pkg.go.dev/github.com/hsanjuan/ipfs-lite#NewInMemoryDatastore) one.Some helper functions are provided to
[initialize these quickly](https://pkg.go.dev/github.com/hsanjuan/ipfs-lite#SetupLibp2p).It provides:
* An [`ipld.DAGService`](https://pkg.go.dev/github.com/ipfs/go-ipld-format#DAGService).
* An [`AddFile` method](https://pkg.go.dev/github.com/hsanjuan/ipfs-lite#Peer.AddFile) to add content from a reader.
* A [`GetFile` method](https://pkg.go.dev/github.com/hsanjuan/ipfs-lite#Peer.GetFile) to get a file from IPFS.The goal of IPFS-Lite is to run the **bare minimal** functionality for any
IPLD-based application to interact with the IPFS Network by getting and
putting blocks to it, rather than having to deal with the complexities of
using a full IPFS daemon, and with the liberty of sharing the needed libp2p
Host and DHT for [other things](https://github.com/ipfs/go-ds-crdt).## License
Apache 2.0