Popularity
5.8
Declining
Activity
0.0
Stable
81
5
4
Monthly Downloads: 0
Programming language: Elixir
License: MIT License
Tags:
HTTP
Latest version: v0.0.7
river alternatives and similar packages
Based on the "HTTP" category.
Alternatively, view river alternatives based on common mentions on social networks and blogs.
-
mint
Functional HTTP client for Elixir with support for HTTP/1 and HTTP/2 🌱 -
PlugAttack
A plug building toolkit for blocking and throttling abusive requests -
web_socket
An exploration into a stand-alone library for Plug applications to easily adopt WebSockets. -
spell
Spell is a Web Application Messaging Protocol (WAMP) client implementation in Elixir. WAMP is an open standard WebSocket subprotocol that provides two application messaging patterns in one unified protocol: Remote Procedure Calls + Publish & Subscribe: http://wamp.ws/ -
http_proxy
http proxy with Elixir. wait request with multi port and forward to each URIs -
explode
An easy utility for responding with standard HTTP/JSON error payloads in Plug- and Phoenix-based applications -
Mechanize
Build web scrapers and automate interaction with websites in Elixir with ease! -
ivar
Ivar is an adapter based HTTP client that provides the ability to build composable HTTP requests. -
fuzzyurl
An Elixir library for non-strict parsing, manipulation, and wildcard matching of URLs. -
SpiderMan
SpiderMan,a base-on Broadway fast high-level web crawling & scraping framework for Elixir. -
http_digex
HTTP Digest Auth Library to create auth header to be used with HTTP Digest Authentication -
Ralitobu.Plug
Elixir Plug for Ralitobu, the Rate Limiter with Token Bucket algorithm
Access the most powerful time series database as a service
Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
Promo
www.influxdata.com
Do you think we are missing an alternative of river or a related project?
Popular Comparisons
README
River
NOTE: River is a work in progress and should be considered extremely beta.
River is a general-purpose HTTP client with eventual hopes of full HTTP/2 support (along with support for HTTP/1.1). It is built from the ground up with three major goals:
- be fully compliant with RFC 7540
- be simple and straightforward to use, in the vein of HTTPoison
- be awesome, in the same way that Go's http library (which has built-in, transparent support for
HTTP/2
) is awesome.
Installation
Add River to your list of dependencies in
mix.exs
:def deps do [{:river, "~> 0.0.6"}] end
Ensure River is started before your application:
def application do [applications: [:river]] end
Caveats
- Currently, River only knows how to make
HTTP/2
requests tohttps://
endpoints. Soon, I'll add the ability to make a request via the Upgrade header so that requests tohttp://
endpoints will work as well. - River doesn't currently speak
HTTP/1.x
. Once I finish up basicHTTP/2
support,HTTP1.x
is next on the roadmap. The goal when using River in your project is that you should not need to know whether the underlying connection is usingHTTP/2
orHTTP/1.x
. - River is as beta as it gets, and under active development with no promises of anything being backwards compatible 😬 (until we hit
v1.0
, of course)
Goals
- [x] Basic HTTP/2 support
- [ ] HTTP/1 --> HTTP/2 upgrading
- [ ] Full HTTP/2 support
- [ ] Full HTTP/1.x support
Basic Usage
Simple GET
River.get("https://http2.golang.org/")
=> {:ok,
%River.Response{__status: :ok,
body: "<html>\n<body>\n<h1>Go...",
closed: true, code: 200, content_type: "text/html; charset=utf-8",
headers: headers: [{":status", "200"},
{"content-type", "text/html; charset=utf-8"},
{"content-length", "1708"},
{"date", "Fri, 30 Sep 2016 04:26:34 GMT"}]}}
Simple PUT
River.put("https://example.com/", "hello world")
=> {:ok, %River.Response{...}}
Request with timeout
# timeout unit is milliseconds
River.get("https://http2.golang.org/", timeout: 10)
=> {:error, :timeout}