GithubHelp home page GithubHelp logo

axle's Introduction

The Axle project

The idea for this project is to innovate how we can send messages to one another. The project has the goal of developing a client and a network of servers.

Servers

Imagine a bundle of interconnected servers which are basically append-only databases storing a series of messages--similar to a log. The servers keep in sync and make sure to replicate new messages over the network. So asyncronously it syncs up its entries with all servers until each has the same copy. However it only needs to store the messages from a configuration-defined amount of time until it can be deleted, and it should be enough time to keep relevant data available long enough for someone who has been offline to get back on and access it.

Clients

The clients would obviously connect to a server on the network. Clients post messages to the server encrypted with the target's public key. Once the messages are propogated, the users which match the routing information then have the ability to receive the messages. Messages have pop semantics in that once a client connects to a server, messages created after the last updated timestamp are downloaded and can be opened.

Targets

Targets on the network can be specific users or groups of users. Groups of users have access to the private keys created for the group. Single users of course have access to their own private keys.

Messages

Messages contain information such as:

  • Message creation timestamp
  • Server name user is connected to
  • Their own routing information
  • The intended recipient's routing information
  • Message data consisting of a mime-type and contents.

This means messages aren't limited to plain text. It could be HTML, speech in audio format, videos, pdfs, etc.

Building

To build, type make. You need:

axle's People

Contributors

dsamarin avatar eligrey avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.