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

packetgun-backend

v1.0.0

Published

Packetgun-backend is the backend node.js module that is used with the Packetgun-frontend module to exenge data easily between the two.

Downloads

1

Readme

Packetgun-backend by willmil11

Installation

If you have node.js and npm installed you can run the following command in the terminal.

npm install packetgun-backend

Usage

This package is designed to be used with packetgun-frontend as client. First require the package:

var packetgun = require("packetgun-backend");

Then init the package if you don't everything else that you do will throw an error. The syntax is as below

packetgun.init(verbose, custom-prefix)
//Verbose must be boolean or unspecified (which counts as false)
//Custom-prefix must be a string or unspecified

Classic method

To listen with classic method you need to do as below:

//Listen for requests
packetgun.listen.classic(port, function(client){
    //Got request

    //Log client ip
    console.log(client.ip);
    //Log request exit code
    console.log(client.exit_code);
    //Log client exit code
    console.log(client.client_exit_code);
    //Log client data
    console.log(client.data);

    //Return a response
    //
    //exit_code will be server_exit_code on the client side
    return {
        exit_code: 0,
        data: "Hello world!"
    }
})

This method is not recommended because the size of the client upload data (including exit_code) is limitted to 255 chars/bytes, Also this method is unidirectional as it uses http: client to server not the other way around.

Recommended method

To listen with recommended method you need to do as below:

//Listen for clients
packetgun.listen.recommended(port, function(client){
    //This method uses a different approach to the classic method, this callback is ran when a new client connects.

    //Set an event for receiving data
    client.on("data", function(data){
        //Log request exit code
        console.log(client.exit_code);
        //Log client exit code
        console.log(client.client_exit_code);
        //Log client data
        console.log(client.data);
    })

    //Set an event for client disconnect
    client.on("clientDisconnect", function(){
        console.log("Client disconnected");
    })

    //Send data to the client (whenever you want and as many times as you want if the client is connected)
    client.send({
        exit_code: 0,
        data: "Hello world!"
    })

    //Close the connection (For the demo 5 seconds after the client connects)
    setTimeout(function(){
        client.close();
    }, 5000)
})

This method is recommended because it is bidirectional (client to server and server to client) as it uses websockets. Also the size of the client upload data (including exit_code) is unlimited.

Future goals

  • [ ] Encryption
  • [ ] Better error handling
  • [ ] Recommended method auto reconnection
  • [ ] Classic method multiple part uploads (to avoid the 255 chars/bytes client upload limit)

Changelog

1.0.0

  • Initial release

Creator and credits

The creator of this package is willmil11 (me). Used easynodes for this package. easynodes uses other packages which credits can be found in it's readme. easynodes is also created by me.