GT2/Ejectable/node_modules/phin/README.md

2.6 KiB

phin logo


The ultra-lightweight Node.js HTTP client

Full documentation | GitHub | NPM

Simple Usage

const p = require('phin')

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

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.

phin became 33% lighter with release 2.7.0!

Quick Demos

Simple POST:

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

Promisified:

const p = require('phin').promisified
;(async () => {
	const res = await p({
		url: 'https://ethanent.me'
	})

	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)

Documentation

See the phin documentation.

phin has util.promisify support. The promisified library can also be accessed with require('phin').promisified!

phin vs. the Competition

Request is over 6MB in size. phin is just 25KB in size.

phin is super lightweight, and it's getting lighter all the time.

It contains all of the common HTTP client features included in competing libraries!

Package Size (KB) Dependencies
(Tree Count)
Size Comparison
(vs. phin)
request 4,446 53 444.6x
superagent 1,235 24 123.5x
got 664 44 66.4x
snekfetch 107 0 10.7x
phin 10 0 1x