webmachine-ruby - Webmachine, the HTTP toolkit (in Ruby)

  •        8

webmachine-ruby is a port of Webmachine, which is written in Erlang. The goal of both projects is to expose interesting parts of the HTTP protocol to your application in a declarative way. This means that you are less concerned with the procedures involved in handling requests directly and more with describing facts about the resources that make up your application. Webmachine is not a web framework per se, but more of a toolkit for building HTTP-friendly applications. For example, it does not provide a templating engine or a persistence layer; those choices are up to you. Below we go through some examples of how to do basic things with webmachine-ruby.

http://rdoc.info/github/seancribbs/webmachine-ruby/master/frames
https://github.com/webmachine/webmachine-ruby

Tags
Implementation
License
Platform

   




Related Projects

webmachine-ruby - Webmachine, the HTTP toolkit (in Ruby)

  •    Ruby

Webmachine, the HTTP toolkit (in Ruby)

webmachine - A REST-based system for building web applications.

  •    Erlang

This project began at Basho, the creators and maintainers of Riak. Due to the importance of webmachine to the broader Erlang community, a new organization was formed. Please contact @seancribbs to get involved. Webmachine is an application layer that adds HTTP semantic awareness on top of the excellent bit-pushing and HTTP syntax-management provided by mochiweb, and provides a simple and clean way to connect that to your application's behavior.

ebot - Ebot, an Opensource Web Crawler built on top of a nosql database (apache couchdb, riak), AMQP database (rabbitmq), webmachine and mochiweb

  •    Erlang

Ebot, an Opensource Web Crawler built on top of a nosql database (apache couchdb, riak), AMQP database (rabbitmq), webmachine and mochiweb. Ebot is written in Erlang and it is a very scalable, distribuited and highly configurable web cawler. See wiki pages for more details

webmachine - A REST-based system for building web applications.

  •    Erlang

A REST-based system for building web applications.

ebot

  •    Erlang

Ebot, an Opensource Web Crawler built on top of a nosql database (apache couchdb, riak), AMQP database (rabbitmq), webmachine and mochiweb. Ebot is written in Erlang and it is a very scalable, distribuited and highly configurable web cawler. See wiki pages for more details


basho-webmachine

  •    Erlang

A REST-based system for building web applications.

iodine - iodine - HTTP / Websocket Server with Pub/Sub support, optimized for Ruby MRI on Linux / BSD

  •    C

Iodine is ideal for Linux/Unix based systems (i.e. macOS, Ubuntu, FreeBSD etc'), which are ideal for evented IO (while Windows and Solaris are better at IO completion events, which are totally different). Iodine is a C extension for Ruby, developed and optimized for Ruby MRI 2.2.2 and up... it should support the whole Ruby 2.0 MRI family, but Rack requires Ruby 2.2.2, and so iodine matches this requirement.

puma - A Ruby/Rack web server built for concurrency

  •    Ruby

Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications in development and production. Under the hood, Puma processes requests using a C-optimized Ragel extension (inherited from Mongrel) that provides fast, accurate HTTP 1.1 protocol parsing in a portable way. Puma then serves the request in a thread from an internal thread pool. Since each request is served in a separate thread, truly concurrent Ruby implementations (JRuby, Rubinius) will use all available CPU cores.

Unicorn - Rack HTTP server for fast clients and Unix

  •    Ruby

Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Load balancing is done entirely by the operating system kernel. Requests never pile up behind a busy worker process. Does not care if your application is thread-safe or not, workers all run within their own isolated address space and only serve one client at a time for maximum robustness.

James - Enterprise Mail Server

  •    Java

James (a.k.a Java Apache Mail Enterprise Server) is a 100% pure Java SMTP and POP3 Mail server, and NNTP News server designed to be a complete and portable enterprise mail/messaging engine solution based on currently available open messaging protocols.

volt - A Ruby web framework where your Ruby runs on both server and client

  •    Ruby

Volt is a Ruby web framework where your Ruby code runs on both the server and the client (via Opal). The DOM automatically updates as the user interacts with the page. Page state can be stored in the URL. If the user hits a URL directly, the HTML will first be rendered on the server for faster load times and easier indexing by search engines. Subsequent local page interactions will be rendered on the client. Instead of syncing data between the client and server via HTTP, Volt uses a persistent connection between the client and server. When data is updated on one client, it is updated in the database and any other listening clients (with almost no setup code needed).

bitwarden-ruby - A Bitwarden-compatible API server written in Ruby (Sinatra)

  •    Ruby

A small, self-contained API server written in Ruby and Sinatra to provide a private backend for the open-source Bitwarden apps. All data is stored in a local SQLite database. This means you can easily run the server locally and have your data never leave your device, or run it on your own web server via Rack and some front-end HTTP server with TLS to support syncing across multiple devices. Backing up your data is as easy as copying the db/production.sqlite3 file somewhere.

rubywarden - A Bitwarden-compatible API server written in Ruby (Sinatra and ActiveRecord)

  •    Ruby

A small, self-contained API server written in Ruby and Sinatra to provide a private backend for the open-source Bitwarden apps. All data is stored in a local SQLite database. This means you can easily run the server locally and have your data never leave your device, or run it on your own web server via Rack and some front-end HTTP server with TLS to support syncing across multiple devices. Backing up your data is as easy as copying the db/production/production.sqlite3 file somewhere.

Citadel

  •    C

Citadel is a collaboration suite (messaging and groupware). It provides support for Email, Calendaring/Scheduling, Address books, Bulletin boards, Mailing List Server, Instant Messaging, Wiki, Multiple domain support.

OpenLiteSpeed - High performance, lightweight, HTTP server

  •    C++

OpenLiteSpeed is a high-performance, lightweight, open source HTTP server developed and copyrighted by LiteSpeed Technologies. It is event driven and it can handle hundreds of thousands of concurrent connections without load spikes.

kage - Kage (kah-geh) is a shadow proxy server to duplex HTTP requests

  •    Ruby

Kage (kah-geh) is an HTTP shadow proxy server that sits between clients and your server(s) to enable "shadow requests". Kage can be used to duplex requests to the master (production) server and shadow servers that have newer code changes that are going to be deployed. By shadowing requests to the new code you can make sure there are no big/surprising changes in the response in terms of data, performance and database loads etc.

knod - A Tiny HTTP server for your current directory

  •    Ruby

Knod is a simple HTTP server for prototyping rich JavaScript apps. It responds to GET, PUT, POST, PATCH, and DELETE, serving up, writing to, and deleting from the directory of your choice. Knod has no dependencies outside of the Ruby standard library. The Knod gem comes with an executable; you can run it from the command line with knod. Knod will default to port 4444 and the current directory. You can change these with command line arguments (-p and -d, respectively).

faye-websocket-ruby - Standards-compliant WebSocket client and server

  •    Ruby

This is a general-purpose WebSocket implementation extracted from the Faye project. It provides classes for easily building WebSocket servers and clients in Ruby. It does not provide a server itself, but rather makes it easy to handle WebSocket connections within an existing Rack application. It does not provide any abstraction other than the standard WebSocket API. It also provides an abstraction for handling EventSource connections, which are one-way connections that allow the server to push data to the client. They are based on streaming HTTP responses and can be easier to access via proxies than WebSockets.

vines - An XMPP chat server for Ruby.

  •    Ruby

Vines is an XMPP chat server that supports thousands of simultaneous connections, using EventMachine for asynchronous IO. User data is stored in a SQL database, CouchDB, MongoDB, Redis, the file system, or a custom storage implementation that you provide. LDAP authentication can be used so user names and passwords aren't stored in the chat database. SSL encryption is mandatory on all client and server connections. The server includes support for web chat clients, using BOSH (XMPP over HTTP). A sample web application is available in the vines-web gem.

lpmsserv - an http server based on elpmis

  •    DotNet

an http server based on elpmis script language with localization / storage <storoom> supported can setup http server without any c++ / vb.net / c# code change support save & refresh, can get response changed without even restart server