curvecp

1.2.1 • Public • Published

CurveCP

Pure Javascript CurveCP protocol

The aim of this project is to implement the CurveCP protocol in pure javascript following the specification on http://www.curvecp.org and interopable with the reference implementation.

This project currently implements the messaging format, encryption layer and congestion control algorithm but still needs to be tested, fine-tuned and improved upon. I don't consider this library to be usable yet.

Quick start

See examples directory for an example client and server implementation.

You should create a PacketStream to start with (supplying public/private keys and other required info) and then wrap this stream in a MessageStream() object.

Clients should then execute the connect() method on MessageStream object.

Design

This implementation makes a clean split between:

  • The congestion control algorithm (chicago.js)
  • The crypto layer (packet-stream.js)
  • The messaging layer (message-stream.js)
  • The actual networking transport. To follow the reference implementation, you should use UDP as a networking transport (like illustrated in examples section) but in principle, the packet-stream can be connected to any networking transport. I'm also using it with different types of transports in my own projects.

Inspiration

Readme

Keywords

Package Sidebar

Install

npm i curvecp

Weekly Downloads

8

Version

1.2.1

License

MIT

Last publish

Collaborators

  • tdelaet