# IPFS-lite: embeddable, lightweight IPFS-network peer for IPLD applications

**URL:** <https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237>\
**Category:** Ecosystem and Usage\
**Tags:** go-ipfs\
**Created:** [April 17, 2019, 11:55am UTC](https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237 "2019-04-17T11:55:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![hector](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/hector/32/178_2.png) [@hector](https://discuss.ipfs.tech/u/hector)\
**Post date:** [April 17, 2019, 11:55am UTC](https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237/1 "2019-04-17T11:55:46Z")

</div>

I figure this might be of interest for some people here.

IPFS-lite is a minimal IPFS peer implementation to just provide a DAGService (Get, Put blocks to the IPFS Network) and additionally Add/Get single files (as go-ipfs does). It allows to ipfs-ify any libp2p application but also to run `lightweight` embedded peers that can read and write files to ipfs but do not do all the other things (ipns, mfs, stream mounting, gateway etc etc.).

It may come very handy for mobile applications, for example. It also makes putting and getting IPLD blocks to the network a painless experience.

> **[hsanjuan/ipfs-lite](https://github.com/hsanjuan/ipfs-lite)**
>
> IPFS-Lite is an embeddable, lightweight IPFS-network peer for IPLD applications - hsanjuan/ipfs-lite

---

<div class="post-metadata">

**Author:** ![postables](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/postables/32/2729_2.png) [@postables](https://discuss.ipfs.tech/u/postables)\
**Post date:** [April 17, 2019, 6:53pm UTC](https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237/2 "2019-04-17T18:53:24Z")

</div>

this is awesome 😮 Definitely going to be using this in the future

---

<div class="post-metadata">

**Author:** ![kivutar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/kivutar/32/2885_2.png) [@kivutar](https://discuss.ipfs.tech/u/kivutar)\
**Post date:** [July 23, 2019, 4:03am UTC](https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237/3 "2019-07-23T04:03:31Z")

</div>

I like this. It’s also a good way to study how IPFS works, what are the packages doing, etc…

---

<div class="post-metadata">

**Author:** ![DaniellMesquita](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/daniellmesquita/32/7300_2.png) [@DaniellMesquita](https://discuss.ipfs.tech/u/DaniellMesquita)\
**Post date:** [December 4, 2019, 5:54am UTC](https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237/4 "2019-12-04T05:54:47Z")

</div>

Hi. A IPFS’ lightweight version is much appreciated. Although it gives questions:

- Is it also lightweight in RAM usage?
- Does it provides a single executable like IPFS does?
- It will be available in builds for the same platforms as IPFS haves?

Also, IPFS is creating Rust versions. Simple as ipfs-lite is, it can prove how IPFS would be fully on Rust, as I’ve suggested on GitHub: [https://github.com/hsanjuan/ipfs-lite/issues/6](https://github.com/hsanjuan/ipfs-lite/issues/6)

---

<div class="post-metadata">

**Author:** ![hector](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/hector/32/178_2.png) [@hector](https://discuss.ipfs.tech/u/hector)\
**Post date:** [December 20, 2019, 3:31pm UTC](https://discuss.ipfs.tech/t/ipfs-lite-embeddable-lightweight-ipfs-network-peer-for-ipld-applications/5237/5 "2019-12-20T15:31:47Z")

</div>

Hey @DaniellMesquita, sorry for the late answer.

> Is it also lightweight in RAM usage?

Note that ipfs-lite is not an alternative implementation of go-ipfs, but a minimal go-ipfs feature set put together for easy embedding (a DAGService). It is lightweight in the sense that it drops many things, like Pinner, GC, API, Gateway, IPNS, MFS, Folder-adding, CLI commands… So it should probably use less RAM by the mere fact that it loads less code, but still the heavy consumers are there: the libp2p host, the DHT, the reprovider, the datastore.

> Does it provides a single executable like IPFS does?  
> It will be available in builds for the same platforms as IPFS haves?

No, though the examples show how to make an executable file that does something with it (fetching a file from the ipfs network). The role of ipfs-lite is to give applications a simple way to be able to interact with the IPFS network, fetch and put single pieces of content (usually IPLD nodes). In that sense it is NOT an alternative IPFS implementation in Go, but a complimentary tool using a minimal subset of the existing IPFS implementation.
