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

fluctor

v0.2.3

Published

Flux-like + Actor Model

Downloads

10

Readme

fluctor

Flux-like + Actor Model

Npm Package

Build Status Dependencies Coverage Status

Well, this is a library for creating a shared state across multiple instances;

Installation

npm:

npm install fluctor

What is it?

Well once you create a fluctor object you have an immutalbe state that you can change with transactions

const Fluctor = require('fluctor').Fluctor;


var fluctor = new Fluctor({
  initial: {}, // initial state
  connection: {} // connection settings
});

fluctor.state // => the state

fluctor
  .tran // can be acessed as fluctor.transactions too
  .begin() // begin the transactions
  .set('foo', 'bar') // Do the change
  .commit() // commit the changes (you can rollback too)
  .then(() => 
    console.log('Transaction Commited'));

fluctor.state // => { "foo": "bar" } is the value here and every other server

Transaction

let tran = fluctor.tran.begin();

tran.set(path, value); // Set value

tran.remove(path); // Delete value

tran.push(path, value); // Appends value to an array

tran.pop(path); // Pops last value from array

tran.increment(path, value=1); // Increment Numeric value

tran.decrement(path, value=1); // Decrement Numeric value

tran.commit()
  .then(changes => { /* the returning value from the modifications */ });

Roadmap

This project started as a personal need and i figured out that it should be a fully fledged library. That means there are a lot of tasks to be completed befor the library is production ready =]

  • [ ] Make the thing production ready
  • [ ] Make the Appenders be plugginable
  • [ ] Figure out a custom p2p comunication
  • [ ] Settle on a more strict role splitting among nodes
  • [ ] Maybe transfer some of the core code to native code

License

MIT © Dmitry Dodzin