Skip to content
forked from ipfs/helia

An implementation of IPFS in JavaScript

License

Notifications You must be signed in to change notification settings

AustinFoss/helia

 
 

Repository files navigation

Helia logo

helia

ipfs.tech Discuss codecov CI

Table of contents

🥅 Purpose and goals

A lean, modular, and modern implementation of IPFS for the prolific JS and browser environments.

See the Manifesto, the FAQ, and the State of IPFS in JS blog post from October 2022 for more info.

🏃‍♀️ Getting Started

Check out the Helia examples repo, which covers a wide variety of use cases. If you feel something has been missed, follow the contribution guide and create a PR to the examples repo.

📒 API Docs

📐 System diagram

graph TD;
    User["User or application"]-->IPNS["@helia/ipns"];
    User-->UnixFS["@helia/unixfs"];
    User-->Libp2p;
    User-->Datastore;
    User-->Blockstore;
    UnixFS-->Blockstore;
    IPNS-->Datastore;
    subgraph helia [Helia]
      Datastore
      Blockstore-->Bitswap;
      Libp2p-->DHT;
      Libp2p-->PubSub;
      Libp2p-->IPNI;
      Libp2p-->Reframe;
    end
    Blockstore-->BlockStorage["File system/IDB/S3/etc"]
    Datastore-->DataStorage["Level/S3/IDB/etc"]
    Bitswap-->Network;
    DHT-->Network;
    PubSub-->Network;
    IPNI-->Network;
    Reframe-->Network;
Loading

🏭 Code Structure

Helia embraces a modular approach and encourages users to bring their own implementations of interfacing libraries to suit their needs. Helia also ships supplemental libraries and tools including:

These libraries are by no means the "one true implementation", but instead instead provide optionality depending on one's needs.

This repo itself is made up of these packages:

📣 Project status

Helia v1 shipped in 202303 (see releases), and development keeps on trucking as we work on initiatives in the roadmap and make performance improvements and bug fixes along the way.

🛣️ Roadmap

Please find and comment on the Roadmap here.

👫 Get involved

  • Watch our Helia Demo Day presentations here
  • We are sharing about the progress at periodic Helia Demos. This is a good place to find out the latest and learn of ways to get involved. We'd love to see you there!
  • Pick up one of the issues.
  • Come chat in Filecoin Slack #ip-js. (Yes, we should bridge this to other chat enviornments. Please comment here if you'd like this.)

🤲 Contribute

Contributions welcome! Please check out the issues.

Also see our contributing document for more information on how we work, and about contributing in general.

Please be aware that all interactions related to this repo are subject to the IPFS Code of Conduct.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

🛍️ Notable Consumers/Users

Helia is in its early days. If you're using Helia in production or have a novel usecase, we'd love to hear. Please open an issue so we can learn more!

🌞 Name

Helia (HEE-lee-ah) is the Latin spelling of Ἡλιη -- in Greek mythology, one of the Heliades: the daughters of the sun god Helios. When their brother Phaethon died trying to drive the sun chariot across the sky, their tears of mourning fell to earth as amber, which is yellow (sort of), and so is JavaScript. They were then turned into poplar trees and, well, JavaScript is quite popular.

In Oct–Dec 2022, PL EngRes IP Stewards sought community input for the name of this project. After considering 20 suggestions and holding a couple of polls, the name Helia was chosen. Here's why "ipfs" is not in the name.

🪪 License

Licensed under either of

About

An implementation of IPFS in JavaScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.5%
  • JavaScript 1.5%