r2

HTTP client. Spiritual successor to request.

  • Owner: mikeal/r2
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

r2

Build Status Coverage Status Greenkeeper badge

Early in Node.js I wrote an HTTP client library called request. It evolved
along with Node.js and eventually became very widely depended upon.

A lot has changed since 2010 and I've decided to re-think what a simple
HTTP client library should look like.

This new library, r2, is a completely new approach from request.

  • Rather than being built on top of the Node.js Core HTTP library and
    shimmed for the browser, r2 is built on top of the browser's
    Fetch API and shimmed for Node.js.
  • APIs are meant to be used with async/await, which means they are
    based on promises.
const r2 = require('r2')

let html = await r2('https://www.google.com').text

Simple JSON support.

let obj = {ok: true}

let resp = await r2.put('http://localhost/test.json', {json: obj}).json

Simple headers support.

let headers = {'x-test': 'ok'}

let res = await r2('http://localhost/test', {headers}).response

Being written to the Fetch API is a huge benefit for browser users.

When running through browserify request is ~2M uncompressed and ~500K compressed. r2 is only 66K uncompressed and 16K compressed.

Main metrics

Overview
Name With Ownermikeal/r2
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:Apache License 2.0
所有者活动
Created At2017-08-30 23:50:18
Pushed At2019-09-01 16:23:58
Last Commit At2018-05-27 19:01:38
Release Count3
Last Release Namev2.0.1 (Posted on )
First Release Namev1.1.0 (Posted on )
用户参与
Stargazers Count4.4k
Watchers Count59
Fork Count115
Commits Count40
Has Issues Enabled
Issues Count50
Issue Open Count21
Pull Requests Count20
Pull Requests Open Count9
Pull Requests Close Count8
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private