3.0.8 • Published 7 years ago

toll v3.0.8

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

js-standard-style Join the chat at https://gitter.im/DylanPiercey/toll

Toll

Utility to manage dynamic micro-services by proxying hostnames to other node servers.

Why

  • Sometimes you are stuck in an environment without something like NGINX.
  • Services may be too sporadic to properly configure.
  • You like node js.

Installation

Npm

npm install toll

Registering a Toll service.

var toll = require("toll");

// Start up a server at an arbitrary port.
var server = require("http").createServer(...).listen();

// Connect to Toll proxy.
var proxy = toll.connect(80);

// Register the server with toll.
proxy.register(
	["api.myapp.com", "api.v2.myapp.com"], // List of hosts this server accepts.
	server.address() // The servers address (same api as connect)
);

Starting a Toll server.

var toll = require("toll");
var server = toll.createProxy();

// This server will automatically listen for new Toll registrations and proxy by hostname.
server.listen(80);

API

  • toll.createProxy() : Creates a Toll proxy server.
// Creates a net.Server which which will automatically proxy registered toll services.
var proxy = toll.createProxy().listen(80);
  • toll.connect(path)
  • toll.connect(port, host)
  • toll.connect({ path, host, port, heartbeat }) Creates a new connection to a Toll proxy at a given port.
// Creates a proxy Connection that sends a heartbeat every 15 seconds.
// Api is the same as net.connect. (except for the return value).
var proxy = toll.connect({
	port: 80,
	host: "localhost".
	heartbeat: 15000
});

The Following api works the same for both the proxy server and the connected hosts.

  • proxy.register(hosts, path)
  • proxy.register(hosts, port, host)
  • proxy.register(hosts, { path, host, port }) -> Promise Registers hosts with a Toll proxy.
// Registers arguments are flexable like `toll.connect` but must start with a host(s).
proxy.register("a.b.com", server.address());
proxy.register(["api.a.b.com", "test.a.b.com"], 3002, "127.0.0.1");
  • proxy.remove(hosts) -> Promise Unregisters a hosts with a Toll proxy.
proxy.remove("a.b.com");
proxy.remove(["api.a.b.com", "test.a.b.com"]);

CLI

Start a Toll Proxy server from the cli.

npm install toll -g

toll <port> [ip]
toll 80 127.0.0.1

Contributions

  • Use npm test to run tests.

Please feel free to create a PR!

3.0.8

7 years ago

3.0.7

7 years ago

3.0.6

7 years ago

3.0.5

8 years ago

3.0.4

8 years ago

3.0.3

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.1.2

8 years ago

2.1.0

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.1.0

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago