All Projects → Helidium → Mitol

Helidium / Mitol

Licence: other
Lightweight NodeJS http server

Projects that are alternatives of or similar to Mitol

Go Guerrilla
Mini SMTP server written in golang
Stars: ✭ 2,173 (+1163.37%)
Mutual labels:  server
Node Git Server
🎡 A configurable git server written in Node.js
Stars: ✭ 163 (-5.23%)
Mutual labels:  server
Scala Server Toolkit
Functional programming toolkit for building server applications in Scala.
Stars: ✭ 170 (-1.16%)
Mutual labels:  server
Turnstile
An authentication framework for Swift.
Stars: ✭ 163 (-5.23%)
Mutual labels:  server
Unity Fastpacedmultiplayer
Features a Networking Framework to be used on top of Unity Networking, in order to implement an Authoritative Server with Lag Compensation, Client-Side Prediction/Server Reconciliation and Entity Interpolation
Stars: ✭ 162 (-5.81%)
Mutual labels:  server
Mutual Tls Ssl
🔐 Tutorial of setting up Security for your API with one way authentication with TLS/SSL and mutual mutual authentication for a java based web server and a client with both Spring Boot. Different clients are provided such as Apache HttpClient, OkHttp, Spring RestTemplate, Spring WebFlux WebClient Jetty and Netty, the old and the new JDK HttpClient, the old and the new Jersey Client, Google HttpClient, Unirest, Retrofit, Feign, Methanol, vertx, Scala client Finagle, Featherbed, Dispatch Reboot, AsyncHttpClient, Sttp, Akka, Requests Scala, Http4s Blaze, Kotlin client Fuel, http4k, Kohttp and ktor. Also other server examples are available such as jersey with grizzly. Also gRPC examples are included
Stars: ✭ 163 (-5.23%)
Mutual labels:  server
Lru Cache
💫 A feature complete LRU cache implementation in C++
Stars: ✭ 162 (-5.81%)
Mutual labels:  server
Casbin Server
Casbin as a Service (CaaS)
Stars: ✭ 171 (-0.58%)
Mutual labels:  server
Incremental Reading
Anki add-on providing incremental reading features
Stars: ✭ 164 (-4.65%)
Mutual labels:  addon
Psiphon
A multi-functional version of a popular network circumvention tool
Stars: ✭ 169 (-1.74%)
Mutual labels:  server
Falcon
A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS.
Stars: ✭ 2,058 (+1096.51%)
Mutual labels:  server
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (-4.65%)
Mutual labels:  server
Socketio
Socket.IO Java Server based on Netty. was created to meet gaming performance requirements. battle tested and in use by Playtech Microservices API Gateway.
Stars: ✭ 166 (-3.49%)
Mutual labels:  server
Myserver
MyServer is your own localhost web server. you can setup PHP, Apache, Nginx and MySQL servers on your android devices or linux like Ubuntu etc. MyServer is Developed for android terminal like Termux or GNURoot Debian terminal.
Stars: ✭ 160 (-6.98%)
Mutual labels:  server
Rayo.js
Micro framework for Node.js
Stars: ✭ 170 (-1.16%)
Mutual labels:  server
Poseidon
Poseidon Server Framework (refactor WIP)
Stars: ✭ 162 (-5.81%)
Mutual labels:  server
Lear
Linux Engine for Asset Retrieval - speed-profiled C HTTP server
Stars: ✭ 165 (-4.07%)
Mutual labels:  server
Flexsearch Server
High-performance FlexSearch Server for Node.js (Cluster)
Stars: ✭ 172 (+0%)
Mutual labels:  server
Tigase Server
Highly optimized, extremely modular and very flexible XMPP/Jabber server
Stars: ✭ 170 (-1.16%)
Mutual labels:  server
Storybook Addon Styled Component Theme
storybook addon
Stars: ✭ 168 (-2.33%)
Mutual labels:  addon

unmaintained It was great developing the high performance HTTP server alternative for NodeJS, but I don't have the time to continue development of the project. If anyone wants to continue development, feel free to contact me...

Mitol

Lightweight, high performance NodeJS Server.

Build Status Coverity Status


Project description

Project was born out of the need for faster performing server using NodeJS. Current implementation lacks focus on performance, which can be achieved by moving parts of code to native C++ bindings.

Aim of the project is to offer an alternative solution, which is using less memory and CPU power, giving you available resources for your code or handling higher number of requests.


Advantages

  • No changes required: Just replace require('http') with require('mitol')
  • Top Speed: Roughly 3x better performance than integrated server
  • Additional features: Work in progress (Static file server, Router, ...)

Benchmarks

Benchmark


How to use

Currently only Linux has been tested. To install the project make sure you have node-gyp, python and build-tools (GCC, etc.) installed. To build the node package do the following:

npm i mitol

To test the project you can use the following script

(Single process):

const http = require('mitol');
 
let server = http.createServer((req, res) => {
    res.end('Hello World!');
});
 
server.listen(8080, () => {
    console.log('Example app listening on port 8080!')
});

(Multi process):

const cluster = require('cluster');
const numCPUs = require('os').cpus().length;
const http = require('mitol');
 
if (cluster.isMaster) {
    // Fork workers.
    for (let i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
 
    cluster.on('exit', (worker, code, signal) => {
        console.log(`worker ${worker.process.pid} died`);
    });
} else {
    let server = http.createServer((req, res) => {
        res.end('Hello World!');
    });
 
    server.listen(8080, () => {
        console.log('Example app listening on port 8080!')
    });
}

Like the project?

You can support me by donating: https://www.paypal.com/paypalme/helidium


Thanks

My Family and Friends for supporting me!
All the fans for believing in the project!
Leandro A. F. Pereira For his wonderful Lwan project.
Alex Hultman For his wonderful uWebSockets project.
TechEmpower For Server benchmarks.
GitHub For code hosting.
Travis For code testing.
Coverity For code defects check


Copyright (c) 2017 Mitol Project - Released under the Zlib license.

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