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

proxybroker

v0.11.14

Published

Broker for anonymus proxies

Readme

node-proxybroker

Build Status codecov Dependency Status

Local installation

The proxybroker is implemented as typexs module. It's a framework for dynamic module invocation and integration. To use this implementation create a new directory and install the npm packages.

## Create the project directory and change to it
$ mkdir proxy-project && cd proxy-project 

## Initialize npm project
$ npm init -y

## Mark project as typexs project, 
## you need to set this key to enable the typexs functionality
$ node -p "JSON.stringify({...require('./package.json'), typexs: {name:'proxy-project'}}, null, 2)" > package.mod.json && \ 
  mv package.mod.json package.json

## Install proxybroker
$ npm install proxybroker

## Create the configuration directory and file
$ mkdir config
$ touch config/typexs.yml

Add following content to the config/typexs.yml file:

# Configuration 
proxy-broker:
  startup: true
  validator:
    parallel: 50
    judge:
      selftest: true
      remote_lookup: true
      remote_ip: 127.0.0.1
      ip: 0.0.0.0
      request:
        timeout: 5000
  provider:
    startup: true
    parallel: 5

server:
  proxyserver:
    type: proxyserver
    port: 3128
    enable: true
    timeout: 30000
    # limit of search repeats if proxy failed
    repeatLimit: 10
    broker:
      enable: true
      timeouts:
        incoming: 30000
        forward: 2000
    toProxy: true # default rotator will be used



schedules:
  - name: fetch_proxies
    offset: 4h
    # startup: true
    task:
      name:
        - proxy_fetch
      validate: true
      provider: __all__
  - name: revalidate
    offset: 30m
    event:
      name: validator_run_event


workers:
  access:
    - name: TaskQueueWorker
      access: allow

Configuration

The configuration file must be under config/typexs.yml in the project directory.

TODO

  • proxy-broker
    • startup

Usage

Proxyserver

Start the server with command:

typexs server

This command starts all instances of servers defined under the root key server in the configuration file.

Fetch proxies

Command:

typexs proxy-fetch [provider] [variant] -f json|csv -validate
  • provider - the name of the defined proxy provider
  • variant - is the possible different proxy
  • -f - output format is default 'json', the other possible value is 'csv'
  • --validate - run validation of grabbed data
  • --store - store data also in backend
# Shows proxy variants
> typexs proxy-fetch

# Scan all proxy variants and return as json (can be piped to json file )
> typexs proxy-fetch __all__

> typexs proxy-fetch __all__ --validate --store

> typexs proxy-fetch __all__ > proxies.json
   

Validate only

Command:

typexs proxy-validate [string or filename] [-f json|csv] [--store]

Examples:

# Shows proxy variants
> typexs proxy-validate '127.0.0.1:3128'


> typexs proxy-validate '127.0.0.1:3128'
   

Server-mode

TODO

Docker

TODO

docker run -p 8080:8080 -p 8181:8181 -it proxybroker-pg

Testing

curl over proxy

$ curl -x http://localhost:3128 -L http://httpbin.org/headers

Notes

  • If you running proxybroker locally or behind a NAT enviroment, you must expose the ports of the judge instance.