Nothing Special   »   [go: up one dir, main page]

All Projects → macournoyer → Thin

macournoyer / Thin

A very fast & simple Ruby web server

Programming Languages

ruby
36898 projects - #4 most used programming language
c
50402 projects - #5 most used programming language
HTML
75241 projects
Ragel
52 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to Thin

Agoo
A High Performance HTTP Server for Ruby
Stars: ✭ 679 (-68.71%)
Mutual labels:  rails, server, rack
Local Web Server
A lean, modular web server for rapid full-stack development.
Stars: ✭ 916 (-57.79%)
Mutual labels:  server, web-server
Mailcatcher
Catches mail and serves it through a dream.
Stars: ✭ 5,512 (+154.01%)
Mutual labels:  rails, server
Puma
A Ruby/Rack web server built for parallelism
Stars: ✭ 6,924 (+219.08%)
Mutual labels:  server, rack
Rack Dev Mark
Show dev mark on development env
Stars: ✭ 350 (-83.87%)
Mutual labels:  rails, rack
Binserve
A blazingly fast static web server with routing, templating, and security in a single binary you can set up with zero code. ⚡️🦀
Stars: ✭ 401 (-81.52%)
Mutual labels:  server, web-server
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Stars: ✭ 720 (-66.82%)
Mutual labels:  server, rack
Rack Weixin
微信公众平台 开放消息接口 Rack Middleware
Stars: ✭ 105 (-95.16%)
Mutual labels:  rails, rack
Web Server Bundle
WebServerBundle provides commands for running applications using the PHP built-in web server. It simplifies your local development setup because you don't have to configure a proper web server such as Apache or Nginx to run your application.
Stars: ✭ 1,281 (-40.97%)
Mutual labels:  server, web-server
Letsencrypt heroku
Automated letsencrypt setup for heroku
Stars: ✭ 58 (-97.33%)
Mutual labels:  rails, rack
Hi Nginx
A fast and robust web server and application server for C++,Python,Lua ,Java,quickjs language
Stars: ✭ 346 (-84.06%)
Mutual labels:  server, web-server
Vite ruby
⚡️ Vite.js in Ruby, bringing joy to your JavaScript experience
Stars: ✭ 112 (-94.84%)
Mutual labels:  rails, rack
Nock Nock
🚪 Monitor and validate your websites to maintain maximum uptime.
Stars: ✭ 339 (-84.38%)
Mutual labels:  server, web-server
Uwsgi Nginx Docker
Docker image with uWSGI and Nginx for applications in Python 3.5 and above and Python 2.7 (as Flask) in a single container. Optionally with Alpine Linux.
Stars: ✭ 466 (-78.53%)
Mutual labels:  server, web-server
Lamby
Simple Rails & AWS Lambda Integration 🐑🛤
Stars: ✭ 336 (-84.52%)
Mutual labels:  rails, rack
tipi
Tipi - the All-in-one Web Server for Ruby Apps
Stars: ✭ 214 (-90.14%)
Mutual labels:  rack, web-server
Split
📈 The Rack Based A/B testing framework
Stars: ✭ 2,539 (+17%)
Mutual labels:  rails, rack
Rack Reducer
Declaratively filter data via URL params, in any Rack app, with any ORM.
Stars: ✭ 241 (-88.89%)
Mutual labels:  rails, rack
Rackula
Generate a static site from any rack middleware.
Stars: ✭ 49 (-97.74%)
Mutual labels:  rails, rack
Hummingbird
Lightweight, flexible HTTP server framework written in Swift
Stars: ✭ 114 (-94.75%)
Mutual labels:  server, web-server

Thin

A small and fast Ruby web server

Installation

gem install thin

Or add thin to your Gemfile:

gem 'thin'

Usage

A +thin+ script offers an easy way to start your Rack application:

thin start

Browse the example directory for sample applications.

Usage with Rails Action Cable

To use Thin with Action Cable, add the following to your Gemfile:

gem 'faye-websocket'
gem 'thin' # If not already done

Create a config/initializers/thin_action_cable.rb:

Rails.application.config.action_cable.use_faye = true
Faye::WebSocket.load_adapter 'thin'

CLI

Use a rackup (config.ru) file and bind to localhost port 8080:

thin -R config.ru -a 127.0.0.1 -p 8080 start

Store the server process ID, log to a file and daemonize:

thin -p 9292 -P tmp/pids/thin.pid -l logs/thin.log -d start

Thin is quite flexible in that many options can be specified at the command line (see thin -h for more).

Configuration files

You can create a configuration file using thin config -C config/thin.yml.

You can then use it with all commands, such as: thin start -C config/thin.yml.

Here is an example config file:

--- 
user: www-data
group: www-data
pid: tmp/pids/thin.pid
timeout: 30
wait: 30
log: log/thin.log
max_conns: 1024
require: []
environment: production
max_persistent_conns: 512
servers: 1
threaded: true
no-epoll: true
daemonize: true
socket: tmp/sockets/thin.sock
chdir: /path/to/your/apps/root
tag: a-name-to-show-up-in-ps aux

License

Ruby License, http://www.ruby-lang.org/en/LICENSE.txt.

Credits

The parser was originally from Mongrel http://mongrel.rubyforge.org by Zed Shaw. Mongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed under the Ruby license and the GPL2.

Thin is copyright Marc-Andre Cournoyer [email protected]

Get help at http://groups.google.com/group/thin-ruby/ Report bugs at https://github.com/macournoyer/thin/issues and major security issues directly to me at [email protected].

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