Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: ✨ Mapping unixFS and IPNS packages #76

Merged
merged 3 commits into from
Apr 4, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion MANIFESTO.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ The core of Helia will be very focused on use as a library: just [js-libp2p], a

A "get you started" bundle with some common components will be provided but users are very much encouraged to roll their own version of Helia to suit their use case.

> **Note**
>
> An implementation of IPNS compatible with helia can be installed from npm [`@helia/ipns`](https://github.com/ipfs/helia-ipns)

## BYO Filesystem

The default filesystem for IPFS is [UnixFS](https://github.com/ipfs/specs/blob/main/UNIXFS.md), but UnixFS has several limitations. Support for some common Unix file attributes such as mode (permission bits) and `mtime` landed in UnixFSv1.5, but this has yet to make it to [kubo].
Expand All @@ -35,6 +39,10 @@ Several features are still missing from 1.5, such as arbitrary metadata (extende

That these missing features are being implemented by other filesystems is incredibly exciting and will unlock new use cases that are not possible today, so Helia will not bless any one filesystem as the One True Implementation, instead it will present an abstraction of posix filesystem operations (`ls`, `cat`, etc) as an API but the underlying filesystem(s) will be configurable.

> **Note**
>
> An implementation of unixFS compatible with helia can be installed from npm [`@helia/unixfs`](https://github.com/ipfs/helia-unixfs).

## JavaScript first

In the beginning there were Node.js [streams](https://nodejs.org/api/stream.html#readable-streams). Then there were [pull streams](https://www.npmjs.com/package/pull-stream). And finally, browsers have [native streams too](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream).
Expand Down Expand Up @@ -71,4 +79,4 @@ It will use [js-libp2p] and [js-bitswap] to ensure compatibility with existing I
[js-libp2p]: https://github.com/libp2p/js-libp2p
[js-bitswap]: https://github.com/ipfs/js-ipfs-bitswap
[blockstore]: https://github.com/ipfs/js-ipfs-interfaces/tree/master/packages/interface-blockstore
[kubo]: https://github.com/ipfs/kubo
[kubo]: https://github.com/ipfs/kubo
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
## Table of contents <!-- omit in toc -->

- [Purpose and goals](#purpose-and-goals)
- [Getting Started](#getting-started)
- [Project status](#project-status)
- [Roadmap](#roadmap)
- [Get involved](#get-involved)
Expand All @@ -31,9 +32,20 @@ A lean, modular, and modern implementation of IPFS for the prolific JS and brows

See the [Manifesto](./MANIFESTO.md) and the [State of IPFS in JS blog post from October 2022](https://blog.ipfs.tech/state-of-ipfs-in-js/) for more info.

## Getting Started

Helia ships with an [examples repo](https://github.com/ipfs-examples/helia-examples#examples), which covers a wide variety of use cases. If you feel something has been missed, follow the [contribution guide](https://github.com/ipfs-examples/helia-examples#contributing) and create a PR to the examples repo.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whizzzkid marked this conversation as resolved.
Show resolved Hide resolved

Helia embraces the modular approach and encourages you to bring your own implementations of interfacing libraries to suit your needs. Helia also ships supplemental libraries and tooling compatible with Helia:

- [`@helia/UnixFS`](https://github.com/ipfs/helia-unixfs)
- [`@helia/ipns`](https://github.com/ipfs/helia-ipns)
Comment on lines +41 to +42
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


These libraries are by no means the "one true implementation", instead these are meant to configurable as per your needs.

## Project status

As of early 2023, this project is pre-alpha and is currently in development. These initial building blocks are in development now; have a look at this repo's PR(s). An initial v1 release is planned for [late Q1 2023](/ROADMAP.md#late-q1-march).
As of early 2023, this project is pre-alpha and is currently in development. These initial building blocks are in development now; have a look at this repo's PR(s). An initial v1 release is planned for [late Q1 2023](/ROADMAP.md#late-q1-march).

## Roadmap

Expand Down