# sni-reader

> Extracts the Server Name Indication from a raw TLS Stream

Latest version **0.1.1** (published 2015-11-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install sni-reader
pnpm add sni-reader
yarn add sni-reader
bun add sni-reader
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.1 |
| Published | 2015-11-26 |
| First published | 2015-10-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4 |
| Author | Christian Tellnes |
| Maintainers | tellnes |
| Keywords | sni, tls, servername, server, name, indication, stream |

## Links

- npm: https://www.npmjs.com/package/sni-reader
- Repository: https://github.com/tellnes/sni-reader
- Issues: https://github.com/tellnes/sni-reader/issues
- npm.io page: https://npm.io/package/sni-reader

## Alternatives

- [base64url](https://npm.io/package/base64url.md) — 6.1M weekly downloads
- [get-installed-path](https://npm.io/package/get-installed-path.md) — 502.9K weekly downloads
- [@uppy/url](https://npm.io/package/@uppy/url.md) — 185.8K weekly downloads
- [@d3fc/d3fc-shape](https://npm.io/package/@d3fc/d3fc-shape.md) — 16.2K weekly downloads
- [localizer](https://npm.io/package/localizer.md) — 226 weekly downloads

## Recent versions

- 0.1.1 (latest) — 2015-11-26
- 0.1.0 — 2015-10-07

## README

# sni-reader

[![Version npm](https://img.shields.io/npm/v/sni-reader.svg?style=flat-square)](https://www.npmjs.com/package/sni-reader)[![npm Downloads](https://img.shields.io/npm/dm/sni-reader.svg?style=flat-square)](https://www.npmjs.com/package/sni-reader)[![Build Status](https://img.shields.io/travis/tellnes/sni-reader/master.svg?style=flat-square)](https://travis-ci.org/tellnes/sni-reader)[![Coverage Status](https://img.shields.io/coveralls/tellnes/sni-reader/master.svg?style=flat-square)](https://coveralls.io/github/tellnes/sni-reader?branch=master)[![Dependencies](https://img.shields.io/david/tellnes/sni-reader.svg?style=flat-square)](https://david-dm.org/tellnes/sni-reader)[![Tips](http://img.shields.io/gratipay/tellnes.png?style=flat-square)](https://gratipay.com/~tellnes/)



`sni-reader` extracts the Server Name Indication from a raw TLS stream. It reads
the ClientHello message and extracts the value of the SNI extension if the
extension is present.


## Usage

```js
var net = require('net')
var sni = require('sni-reader')

const serverNameMap =
  { 'example.com': 8001
  , 'example.net': 8002
  }

net.createServer(function(socket) {
  sni(socket, function(err, serverName) {
    const port = serverNameMap[serverName]
    socket.pipe(net.connect(port)).pipe(socket)
  })
}).listen(80)
```


## Install

```bash
npm install -S sni-reader
```


## License

MIT

---
_Source: https://npm.io/package/sni-reader · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
