Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork1
Cross-library feature rich HTTP request / response API
License
digital-fabric/qeweney
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Qeweney provides a uniform API for dealing with HTTP requests and responses onthe server side. Qeweney defines a uniform adapter interface that allowshandling incoming HTTP requests and sending HTTP responses over any protocol ortransport, be it HTTP/1, HTTP/2 or a Rack interface.
Qeweney is primarily designed to work withTipi, but can also be used directlyinside Rack apps, or to drive Rack apps.
- 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, fileuploads, 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.
In Qeweney, the main class developers will interact with isQeweney::Request
,which encapsulates an HTTP request (from the server's point of view), and offersan API for extracting request information and responding to that request.
A request is always associated with anadapter, an object that implements theQeweney adapter interface, and that allows reading request bodies (for uploadsand form submissions) and sending responses.
classAdapterInterface# Reads a chunk from the request body# @req [Qeweney::Request] request for which the chunk is to be readdefget_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 headersdefrespond(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 emptydefsend_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 finisheddefsend_chunk(req,body,done:false)end# Finishes response# @req [Qeweney::Request] request for which the response is sentdeffinish(req)endend
About
Cross-library feature rich HTTP request / response API
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.