All Projects → noahlevenson → ministun

noahlevenson / ministun

Licence: MIT license
A zero dependency STUN server

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to ministun

violet
Lightweight STUN/TURN server
Stars: ✭ 112 (+330.77%)
Mutual labels:  stun, rfc-5389, stun-server
libjuice
JUICE is a UDP Interactive Connectivity Establishment library
Stars: ✭ 197 (+657.69%)
Mutual labels:  stun, rfc-5389
free-node.js-learning-resources
A curated list of free resources to learn node.js
Stars: ✭ 70 (+169.23%)
Mutual labels:  node-js
node-screenlogic
Pentair ScreenLogic Javascript library using Node.JS
Stars: ✭ 38 (+46.15%)
Mutual labels:  node-js
influx-crypto-watcher
Server that let you monitor many cryptocurrencies and store the OHLC data in InfluxDB (visualisation with grafana)
Stars: ✭ 49 (+88.46%)
Mutual labels:  node-js
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (+134.62%)
Mutual labels:  node-js
whynote
Command Line Interface to Creating Notes/Tasks
Stars: ✭ 15 (-42.31%)
Mutual labels:  node-js
vayder
Easy and concise validations for Express routes
Stars: ✭ 26 (+0%)
Mutual labels:  node-js
spinnies
Node.js module to create and manage multiple spinners in command-line interface programs
Stars: ✭ 111 (+326.92%)
Mutual labels:  node-js
babyfoot
Simple CQRS/ES Node+Express+TypeScript REST API
Stars: ✭ 14 (-46.15%)
Mutual labels:  node-js
milliparsec
🌌 Tiniest body parser in the universe. Built for modern Node.js
Stars: ✭ 116 (+346.15%)
Mutual labels:  node-js
System-bot
Moderative and user-friendly discord bot using discord.js
Stars: ✭ 39 (+50%)
Mutual labels:  node-js
superhighway84
USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Stars: ✭ 437 (+1580.77%)
Mutual labels:  p2p-network
BotBlock.org
BotBlock - The List of Discord Bot Lists and Services
Stars: ✭ 29 (+11.54%)
Mutual labels:  node-js
fridaybot
Slack bot for https://spb-frontend.slack.com
Stars: ✭ 29 (+11.54%)
Mutual labels:  node-js
Node.js-Material-Starter-Template
Node.js Jade Material Starter Template
Stars: ✭ 17 (-34.62%)
Mutual labels:  node-js
twitter-like-bot
This app allows you to automate Twitter liking for specific keywords, hashtags, or even full sentences. The bot uses streaming API which means that everything happens in real time.
Stars: ✭ 30 (+15.38%)
Mutual labels:  node-js
chainDB
A noSQL database based on blockchain technology
Stars: ✭ 13 (-50%)
Mutual labels:  node-js
moneywave-nodejs
A client library for moneywave API
Stars: ✭ 16 (-38.46%)
Mutual labels:  node-js
fn-rate
🌠 Rate the skins of Fortnite and see what skins are most appreciated!
Stars: ✭ 14 (-46.15%)
Mutual labels:  node-js

ministun

Build Status

STUN is a simple protocol. A STUN implementation should be simple too.

ministun is a zero dependency STUN server. It implements "Basic Server Behavior"1 as defined by section 13 of RFC 5389, including backwards compatibility with RFC 3489.

Developed with WebRTC p2p in mind, it was designed to easily and reliably add STUN services to distributed hash tables.

In the future, ministun could evolve to provide a more robust implementation of RFC 5389, including client functions.

1 Since ministun is focused on STUN services for WebRTC, it currently lacks support for STUN over TCP. (Browsers seem to implement their STUN clients for WebRTC over UDP only).

Requirements

Node.js >= 12.14.0

Installation

npm i ministun

Usage

const Ministun = require("ministun");

const config = {
	udp4: true,
	upd6: true,
	port: 3478,
	log: null,
	err: null,
	sw: true
};

const server = new Ministun(config);

async function startServer() {
	await server.start();
}

async function stopServer() {
	await server.stop();
}

Configuration

  • udp4: bool (Default: true)
    Support UDP over IPv4?

  • udp6: bool (Default: true)
    Support UDP over IPv6?

  • port: number (Default: 3478)
    Port number

  • log: function || null (Default: console.log)
    Log messages will be passed to this function as arg 0, null = no message logging

  • err: function || null (Default: console.err)
    Error messages will be passed to this function as arg 0, null = no error logging

  • sw: bool (Default: true)
    Send the SOFTWARE attribute with response messages?

TODO

Test coverage definitely ain't 100%

TCP?

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].