All Projects → FabricLabs → fabric

FabricLabs / fabric

Licence: MIT, MIT licenses found Licenses found MIT LICENSE MIT COPYING
Fabric is an experimental protocol for exchanging information.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Nix
1067 projects
CSS
56736 projects
shell
77523 projects
Pug
443 projects

Projects that are alternatives of or similar to fabric

Neutrino
Privacy-Preserving Bitcoin Light Client
Stars: ✭ 564 (+1126.09%)
Mutual labels:  distributed-systems, peer-to-peer
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (+95.65%)
Mutual labels:  distributed-systems, peer-to-peer
Arbore
Friend-to-friend filesharing app to save the world from dystopia
Stars: ✭ 270 (+486.96%)
Mutual labels:  distributed-systems, peer-to-peer
Go2p
Simple to use but full configurable p2p framework
Stars: ✭ 80 (+73.91%)
Mutual labels:  distributed-systems, peer-to-peer
Gossip Python
Implementation of the gossip protocol
Stars: ✭ 100 (+117.39%)
Mutual labels:  distributed-systems, peer-to-peer
Crdt Playground
Stars: ✭ 215 (+367.39%)
Mutual labels:  distributed-systems, peer-to-peer
Diztl
Share, discover & download files in your network 💥
Stars: ✭ 162 (+252.17%)
Mutual labels:  distributed-systems, peer-to-peer
Zebus
A lightweight Peer to Peer Service Bus
Stars: ✭ 222 (+382.61%)
Mutual labels:  distributed-systems, peer-to-peer
digital-assets-association-poland
🐋 🐋 https://meetup.com/Silesia-Blockchain-Meetup 🐋 🐋
Stars: ✭ 14 (-69.57%)
Mutual labels:  proof-of-work
gon2n
Go bindings, management daemons and CLIs for n2n edges and supernodes.
Stars: ✭ 67 (+45.65%)
Mutual labels:  peer-to-peer
PyPPSPP
Python implementation of Peer-to-Peer Streaming Peer Protocol (PPSPP) [RFC7574]
Stars: ✭ 18 (-60.87%)
Mutual labels:  peer-to-peer
p2p-forwarder
P2P Forwarder - a tool for farwarding tcp/udp ports. Made using libp2p.
Stars: ✭ 31 (-32.61%)
Mutual labels:  peer-to-peer
Distributed-Algorithms
利用 Go 语言实现多种分布式算法
Stars: ✭ 53 (+15.22%)
Mutual labels:  distributed-systems
school21
Как подготовиться к бассйну Школы 21: изучаем терминал, vim, работаем с gcc, norminette, git, пишем первую программу на Си.
Stars: ✭ 41 (-10.87%)
Mutual labels:  peer-to-peer
go-distsys
Distributed Systems programming examples in the Go programming language.
Stars: ✭ 101 (+119.57%)
Mutual labels:  distributed-systems
TrackCOVID
An open source project which provides privacy-preserving contact tracing for communities using QR codes
Stars: ✭ 23 (-50%)
Mutual labels:  peer-to-peer
py-cryptonight
Python Cryptonight binding / extension. Monero hash function, proof-of-work, cn_slow_hash()
Stars: ✭ 20 (-56.52%)
Mutual labels:  proof-of-work
moqui-hazelcast
Moqui Framework tool component for Hazelcast, used for distributed async services, entity distributed cache invalidation, web session replication, and distributed cache (javax.cache)
Stars: ✭ 12 (-73.91%)
Mutual labels:  distributed-systems
ucz-dfs
A distributed file system written in Rust.
Stars: ✭ 25 (-45.65%)
Mutual labels:  distributed-systems
Peer2PeerTube
A live video streaming 💻 platform based on peer-to-peer architecture.
Stars: ✭ 27 (-41.3%)
Mutual labels:  peer-to-peer

Fabric

Project Status Build Status Coverage Status GitHub contributors Community

Fabric is an experimental approach to the secure establishment and execution of peer-to-peer agreements, up to and including financial transactions. With a robust library of common components, npm i @fabric/core provides all the tools one might require during the development of a well-researched application of decentralization technology.

🚨 Heads up!
Use of Fabric in production is not recommended in its current state. Please wait for an official release before deploying to production environments, or proceed at your own risk.

Getting Started

If you're already familiar with node and have a project already started, try npm install --save @fabric/core to install Fabric Core, the primary library used for most Fabric-based applications.

You'll also want bitcoind installed, and fully synchronized with your preferred network. You can use scripts/playnet.sh to run a local playnet node, for which you can use the faucet: https://faucet.playnet.fabric.pub

Fork and clone the Fabric GitHub repository and launch a local web server with npm run examples to view the examples, or npm run docs once you're ready to integrate Fabric into your application.

Available Commands

  • npm run cli provides a direct command-line interface to the Fabric network.
  • npm run dev serves a developer interface over localhost HTTP.
  • npm run docs creates a local HTTP server for browsing documentation.
  • npm run examples creates a local HTTP server for interacting with examples.
  • npm start creates a local Fabric node.

API

The Fabric reference implementation exposes a simple message-passing interface using the actor model, enabling your downstream applications to subscribe to simple events for rapid prototyping of distributed applications.

Using as a Library

Using the EventEmitter pattern, you can create an instance of Fabric to use it as an event source.

Simple Example

const Fabric = require('@fabric/core');
const fabric = new Fabric();

fabric.on('message', function (message) {
  console.log('Received message from Fabric:', message);
});

fabric.start();

service now contains a full instance of Fabric, including SET and GET methods for publishing and retrieving documents. Use npm run examples to see more.

Message Types

Message types are as follows:

message

The generic message event.

Properties:

  • @type name of the event type.
  • @data the content of the event, if any.

Using Fabric in the Browser

Fabric generates a fabric.min.js bundle, which can be included with any HTML document to expose the API in a browser.

Other Fabrics

Several other projects have used the name Fabric, as it's a great way to describe a network of things, conjuring feelings of nets and webs. Here are some links to them, as they offer some interesting things completely unrelated to our goals.

  • Fabric python project (#fabric on Freenode)
  • Fabric application framework by Twitter
  • HyperLedger Fabric, by IBM

Plugins

Fabric is an extensible framework, supporting a variety of plugins.

Package Description Status
@fabric/http serve Fabric apps to the legacy web (HTTP) Build Status Coverage Status
@fabric/matrix connect to Matrix servers Build Status Coverage Status
@fabric/twilio send (and receive) SMS and phone calls Build Status Coverage Status
@fabric/zapier interact with arbitrary zapier triggers Build Status Coverage Status
@fabric/doorman an artificially intelligent assistant Build Status Coverage Status
@fabric/soundtrack collaborative jukebox Build Status Coverage Status

Running on Fabric

Several successful projects are built with or are running on Fabric, including:

  • Doorman, an artificially intelligent assistant
  • IdleRPG, a simple RPG game which rewards you for remaining idle
  • Verse, a virtual universe simulator

To add your project to the list, read the API docs, create a public repository for the source code, then edit this file to include a link to your work.

Learning More

The best place to get started is in the #learning channel, a collection of empassioned educators eager to help you.

Fabric on Twitter: @FabricProtocol

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].