All Projects → kachayev → Nasus

kachayev / Nasus

Licence: mit
Zero-configuration command-line async HTTP files server in Clojure. Like Python's SimpleHTTPServer but scalable.

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to Nasus

Http static
File serving using tower web
Stars: ✭ 18 (-88.61%)
Mutual labels:  async, http-server
Nettygameserver
使用netty4.X实现的手机游戏分布式服务器,支持tcp,udp,http,websocket链接,采用protobuf自定义协议栈进行网络通信,支持rpc远程调用,使用mybatis3支持db存储分库分表,支持异步mysql存储,db保存时同步更新reids缓存。 使用ExcelToCode工程,将excel数据生成java类和json数据字典,DictService直接读取json,减少数据字典部分代码。使用game-executor工程,增加游戏内的异步事件全局服务, 支持事件sharding,均衡的异步执行事件逻辑
Stars: ✭ 1,203 (+661.39%)
Mutual labels:  http-server, netty
Chili
Chili: HTTP Served Hot
Stars: ✭ 7 (-95.57%)
Mutual labels:  async, http-server
Async Http Client
Asynchronous Http and WebSocket Client library for Java
Stars: ✭ 5,876 (+3618.99%)
Mutual labels:  async, netty
Dapeng Soa
A lightweight, high performance micro-service framework
Stars: ✭ 101 (-36.08%)
Mutual labels:  async, netty
Vertx Sql Client
High performance reactive SQL Client written in Java
Stars: ✭ 690 (+336.71%)
Mutual labels:  async, netty
Suave
Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.
Stars: ✭ 1,196 (+656.96%)
Mutual labels:  async, http-server
smartacus-mqtt-broker
smartacus-mqtt-broker is a Java-based open source MQTT broker that fully supports MQTT 3.x .Using Netty 4.1.37
Stars: ✭ 25 (-84.18%)
Mutual labels:  netty, http-server
Meinheld
Meinheld is a high performance asynchronous WSGI Web Server (based on picoev)
Stars: ✭ 1,339 (+747.47%)
Mutual labels:  async, http-server
T Io
解决其它网络框架没有解决的用户痛点,让天下没有难开发的网络程序
Stars: ✭ 1,331 (+742.41%)
Mutual labels:  http-server, netty
Cppserver
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 528 (+234.18%)
Mutual labels:  async, http-server
Advanced Vertx Guide
A gentle guide for advanced Vert.x users
Stars: ✭ 118 (-25.32%)
Mutual labels:  async, netty
Vertx Zero
Zero Framework:http://www.vertxup.cn
Stars: ✭ 320 (+102.53%)
Mutual labels:  async, netty
Netcoreserver
Ultra fast and low latency asynchronous socket server & client C# .NET Core library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 799 (+405.7%)
Mutual labels:  async, http-server
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+2046.84%)
Mutual labels:  http-server, netty
Http Server
A non-blocking HTTP application server for PHP based on Amp.
Stars: ✭ 1,122 (+610.13%)
Mutual labels:  async, http-server
Http Kit
http-kit is a minimalist, event-driven, high-performance Clojure HTTP server/client library with WebSocket and asynchronous support
Stars: ✭ 2,234 (+1313.92%)
Mutual labels:  async, http-server
Swoole Bundle
Symfony Swoole Bundle
Stars: ✭ 201 (+27.22%)
Mutual labels:  async, http-server
Igropyr
a async http server base on libuv for Chez Scheme
Stars: ✭ 85 (-46.2%)
Mutual labels:  async, http-server
Netty Rest
Yet another high performance REST server based on Netty
Stars: ✭ 107 (-32.28%)
Mutual labels:  http-server, netty

Nasus HTTP Server

A simple zero-configuration command-line HTTP files server. Like Python's SimpleHTTPServer but scalable. Сan easily handle thousands of simultaneous connections.

Implemented in Clojure with Aleph and Netty. Mostly as an example. It's still skillful and handy tho'. There's even nothing wrong with putting it to production.

Usage

Run in the directory you want to serve:

clj -Sdeps '{:deps {nasus {:mvn/version "0.1.7"}}}' -m http.server

Or specify custom port:

clj -Sdeps '{:deps {nasus {:mvn/version "0.1.7"}}}' -m http.server 8001

Features

  • Plain text & HTML directory listings based on "Accept" header
  • Automatic mime-type detection
  • Streaming and chunked encoding for large files
  • Keep-alive and slow requests handling
  • Transparent content compression (gzip, deflate)
  • Cache control and "Last-Modified"
  • CORS headers

In development:

  • Range queries support
  • SSL/TLS
  • List of files & directories to exclude from serving

Flags

  -p, --port <PORT>         8000        Port number
  -b, --bind <IP>           0.0.0.0     Address to bind to
      --dir <PATH>          ./          Directory to serve files
      --auth <USER[:PASSWORD]>          Basic auth
      --no-index                        Disable directory listings
      --no-cache                        Disable cache headers
      --no-compression                  Disable deflate and gzip compression
      --follow-symlink                  Enable symbolic links support
      --include-hidden                  Process hidden files as normal
      --cors                            Support Acccess-Control-* headers, see --cors-* options for more fine-grained control
      --cors-origin                     Acccess-Control-Allow-Origin response header value
      --cors-methods                    Acccess-Control-Allow-Methods response header value
      --cors-allow-headers              Acccess-Control-Allow-Headers response header value
      --index-document-path <PATH>      When requesting "dir/", respond with "dir/<PATH>" instead of a listing
  -h, --help

License

Copyright © 2020 Nasus

Nasus is licensed under the MIT license, available at MIT and also in the LICENSE file.

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