npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

viti

v1.0.6

Published

An attempt to do build a vpn

Downloads

37

Readme

simple-shadow

中文介绍

A 100 line shadowsocks like firewall tunneling proxy written in nodejs with educational purpose.

Usage

# install
npm install -g viti

# start remote server
viti --remote --password 'sample password'

# start local server and connect with remote
viti --local --host '127.0.0.1' --password 'sample password'

Note

  1. local server will be listening on 127.0.0.1:1081; Then, you need to set up socks proxy for your computer
  2. remote server will be listening on port 1082; make sure this port is opened.
  3. password of remote and local server should be the same

How simple-shadow works

The principle is simple:

Your local machine is not able to visit google.com because a firewall blacklist the google's IP or reading your request and preventing you from visit google.

However, you have another machine which you can access and that machine can access google.com.

It is easy to think of that you can ask that machine to visit sites on behalf of you and return result back to you. But the firewall may reading your request to that machine. So, you will need to encrypt your data when you are requesting that machine.

Detailed procedure is

  1. browser want to visit google.com; the request is sent in SOCKS5 protocal to local tcp proxy
  2. local tcp proxy encrypt the data and send to remote tcp proxy(pass the wall)
  3. remote tcp proxy decrypt the data and send to SOCKS5 server
  4. SOCKS5 server do the request to google.com and send the response back to remote tcp proxy
  5. remote tcp proxy encrypt the data and send to local tcp proxy(pass the wall)
  6. local tcp proxy decrypt the data and send back to brower, now you can access google.com!

Concepts to grasp

  • SOCKS5: An Internet protocol that exchanges network packets between a client and server through a proxy server. We use SOCKS5 as a request client on remote server.
  • AES (Advanced Encryption Standard): AES is an symmetric-key algorithm (the same key is used for both encrypting and decrypting the data). We use AES to encrypt data in order to pass through the wall.

Good reads about GFW