New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

qeweney

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

qeweney

  • 0.21
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Qeweney - add water, makes its own sauce!

Gem Version Modulation Test MIT licensed

Cross-library HTTP request / response API for servers

Qeweney provides a uniform API for dealing with HTTP requests and responses on the server side. Qeweney defines a uniform adapter interface that allows handling incoming HTTP requests and sending HTTP responses over any protocol or transport, be it HTTP/1, HTTP/2 or a Rack interface.

Qeweney is primarily designed to work with Tipi, but can also be used directly inside Rack apps, or to drive Rack apps.

Features

  • Works with different web server APIs, notably Tipi, Digital Fabric, and Rack.
  • Transport-agnostic.
  • High-performance routing API inspired by Roda.
  • Rich API for extracting data from HTTP requests: form parsing, cookies, file uploads, etc.
  • Rich API for constructing HTTP responses: streaming responses, HTTP upgrades, static file serving, delate and gzip encoding, caching etc.
  • Suitable for both blocking and non-blocking concurrency models.
  • Allows working with request before request body is read and parsed.

Overview

In Qeweney, the main class developers will interact with is Qeweney::Request, which encapsulates an HTTP request (from the server's point of view), and offers an API for extracting request information and responding to that request.

A request is always associated with an adapter, an object that implements the Qeweney adapter interface, and that allows reading request bodies (for uploads and form submissions) and sending responses.

The Qeweney Adapter Interface

class AdapterInterface
  # Reads a chunk from the request body
  # @req [Qeweney::Request] request for which the chunk is to be read
  def get_body_chunk(req)
  end

  # Send a non-streaming response
  # @req [Qeweney::Request] request for which the response is sent
  # @body [String, nil] response body
  # @headers [Hash] response headers
  def respond(req, body, headers)
  end

  # Send only headers
  # @req [Qeweney::Request] request for which the response is sent
  # @headers [Hash] response headers
  # @empty_response [boolean] whether response is empty
  def send_headers(req, headers, empty_response: nil)
  end

  # Send a body chunk (this implies chunked transfer encoding)
  # @req [Qeweney::Request] request for which the response is sent
  # @body [String, nil] chunk
  # @done [boolean] whether response is finished
  def send_chunk(req, body, done: false)
  end

  # Finishes response
  # @req [Qeweney::Request] request for which the response is sent
  def finish(req)
  end
end

FAQs

Package last updated on 09 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc