npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ipfs-mfs-crypto

v0.0.1

Published

JavaScript implementation of the IPFS Mutable File System supporting out of the box crypto operations

Downloads

22

Readme

MFS(Mutable File System) JavaScript Implementation with Crypto

JavaScript implementation of the IPFS Mutable File System

The MFS spec can be found inside the ipfs/specs repository

Lead Maintainer

Vaibhav Saini

Table of Contents

Install

npm

> npm i ipfs-mfs

Use in Node.js

const mfs = require('ipfs-mfs-crypto')

Use in a browser with browserify, webpack or any other bundler

The code published to npm that gets loaded on require is an ES5 transpiled version with the right shims added. This means that you can require it and use with your favourite bundler without having to adjust asset management process.

const mfs = require('ipfs-mfs-crypto')

Use in a browser using a script tag

Loading this module through a script tag will make the mfs obj available in the global namespace.

<script src="https://npmcdn.com/ipfs-mfs-crypto/dist/index.min.js"></script>
<!-- OR -->
<script src="https://npmcdn.com/ipfs-mfs-crypto/dist/index.js"></script>

A note on concurrency

The mfs works by storing a reference to the root node's CID in LevelDB. LevelDB does not support concurrent access so there are read/write locks around bits of the code that modify the the root node's CID.

A lock is kept on the main thread and any requests to read/write from workers or the main thread itself are queued pending release of the lock by the existing holder.

Reads are executed together, writes are executed sequentially and prevent any reads from starting.

If you are using IPFS in a single process or with the node cluster module this should be completely transparent.

If you are using Web Workers there is no way to globally listen to messages sent between workers and the main thread so you will need to also use the observable-webworkers module to ensure the right message transports are set up to allow requesting/releasing the locks.

Contribute

All are welcome, please join in!

Open an issue or send a PR - see CONTRIBUTING.md for how to make sure your branch is ready for PRing.

Changelog

See CHANGELOG.md for details of what has changed between releases.

License

MIT