Skip to content

Peer-to-peer micro-sharing built with Node.js.

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

defunct/synapse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SYNAPSE

Open Source Peer-to-Peer Micro-Sharing

    Wish and Discuss: http://alan.uservoice.com/pages/synapse
    Develop: http://github.com/bigeasy/synapse/tree/master
    Contact: alan@blogometer.com

    License: GPL v 3.0 with Classpath Exception

    See Also: INSTALL, HACKING, COPYING, LICENSE

UX

Synapse is an open source peer-to-peer micro-sharing application.

Synapse is used to implement a network where people share short messages
no longer than an SMS text message. Particpants in the Synapse network
subscribe to the messages of other participants. They will be able to
follow a stream of messages from the people that they follow.

Addtionally, a person can search across all messages in the network.
They can create a custom stream based on matching search terms,
subscriber, tags and URLs.

Synapse will be distributed with Java Swing UI customized for OS X,
Windows XP and Vista, and Linux desktops. The user interface, when
launched, will also launch a Synapse node. 

ARCHITECTURE

Synapse is a distributed database of messages. Each client serves as a
node on the network. To paricipate in the network, they provide the
network with an order of magnitude more memory than the memory required
to store all of the messages they with to share. 

Messages are stored in the network. Each participant in the network is a
node.

Data Model

The Synapse network stores messages and user profiles. Messages are
parsed into search terms. The network stores these Messages, Profiles
and Terms. When a node becomes active, the messages are injected into
the network.

Each node contains storage for messages, profiles and terms. Each
node will store a portion of the messages, profiles and terms, acting as
leaf nodes in a distributed search tree.

Routing

The network consists of a distributed B+Tree. Each node will host a
number of routing tables. The routing tables will change shape using a
tree algorithm that will split the routing tables from the storage
leaves up, as the storage leaves and routing tables become full.

Messages

Messages are sent one way. A node initiates a injection or query and
waits for a callback indicating that the injection has been performed,
or query results are returned. These actions are pulsed out into the
network until afirmations are received.

Search

Search is always a matter of returning the most recent messages that
match a query, so requests for the terms are sent out into the network,
and the results are merged. Search happens quickly because search terms
are ordered by date and merging can optimize by skipping over terms
based on the oldest term, looking for a possible match. Searches for a
specific single term, are fast.

About

Peer-to-peer micro-sharing built with Node.js.

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published