phin

⚡ The ultra-lightweight Node.js HTTP client

Github星跟踪图


The ultra-lightweight Node.js HTTP client

Full documentation, GitHub, NPM

Simple Usage

const p = require('phin')

const res = await p('https://ethanent.me')

console.log(res.body)

Note that the above should be in an async context! phin also provides an unpromisified version of the library.

Install

npm install phin

Why phin?

phin is trusted by some really important projects. The hundreds of contributors at Less, for example, depend on phin as part of their development process.

Also, phin is super lightweight. Like 99.8% smaller than request lightweight. To compare to other libraries, see phin vs. the Competition.

Quick Demos

Simple POST:

await p({
	url: 'https://ethanent.me',
	method: 'POST',
	data: {
		hey: 'hi'
	}
})

Unpromisified Usage

const p = require('phin').unpromisified

p('https://ethanent.me', (err, res) => {
	if (!err) console.log(res.body)
})

Simple parsing of JSON:

// (In async function in this case.)

const res = await p({
	'url': 'https://ethanent.me/name',
	'parse': 'json'
})

console.log(res.body.first)

Default Options

const ppostjson = p.defaults({
	'method': 'POST',
	'parse': 'json',
	'timeout': 2000
})

// In async function...

const res = await ppostjson('https://ethanent.me/somejson')
// ^ An options object could also be used here to set other options.

// Do things with res.body?

Custom Core HTTP Options

phin allows you to set core HTTP options.

await p({
	'url': 'https://ethanent.me/name',
	'core': {
		'agent': myAgent // Assuming you'd already created myAgent earlier.
	}
})

Full Documentation

There's a lot more which can be done with the phin library.

See the phin documentation.

phin vs. the Competition

phin is a very lightweight library, yet it contains all of the common HTTP client features included in competing libraries!

Here's a size comparison table:

Package, Size
---, ---
request, request package size
superagent, superagent package size
isomorphic-fetch, isomorphic-fetch package size
axios, axios package size
got, got package size
r2, r2 package size
node-fetch, node-fetch package size
snekfetch, snekfetch package size
phin, phin package size

主要指标

概览
名称与所有者ethan7g/phin
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2017-02-21 07:12:21
推送于2024-04-11 00:46:08
最后一次提交2024-04-10 17:46:05
发布数7
最新版本名称v3.5.1 (发布于 )
第一版名称2.9.3 (发布于 )
用户参与
星数577
关注者数8
派生数33
提交数151
已启用问题?
问题数55
打开的问题数17
拉请求数10
打开的拉请求数7
关闭的拉请求数23
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?