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 🙏

© 2024 – Pkg Stats / Ryan Hefner

ilrc

v0.0.3

Published

InterLedger Relay Chat

Downloads

8

Readme

ILRC

InterLedger Relay Chat

Screenshot of CLI

Overview

ILRC is a chat protocol that rides on top of the Interledger stack instead of the Internet stack. Using the STREAM protocol to multiplex data and money, ILRC allows any message to be paid.

ILRC comes with a server and a client implementation.

Usage

Client

First, clone the repo and install the dependencies. Then, you can launch the client in bin/index.js.

git clone [email protected]:sharafian/interledger-relay-chat.git
cd interledger-relay-chat
npm install
node bin/index.js

Next, connect to your server. If you don't yet know a server, follow the Server section to set up your own. Once you've connected, set a nickname with /nick. Finally, you can start sending messages to the chat. In the current version, all messages go to a #global channel.

/connect http://localhost:6677
/nick Alice
Hello World

Command-Line Flags

  • --file <ilrcrc file> - Defaults to ~/.ilrcrc. If the file exists, then the lines are read in and processed line by line. For example, to automatically connect to a server and login to your nick, you could have a ~/.ilrcrc with the following contents:
/connect http://localhost:6677
/nick alice password

Command Reference

  • /connect <SPSP receiver> - Connects to a server. This can only be done once.
  • /nick <Name> [Password] - Set your nickname on the server.
  • <Text> - Send a message to the chat. Currently, this goes to #global.

Server

Start by cloning and installing dependencies. Then you can start the server. It will print the connect command that clients can use to connect to your server.

git clone [email protected]:sharafian/interledger-relay-chat.git
cd interledger-relay-chat
npm install
node index.js

If you want clients on other machines to connect, use Localtunnel to expose port 6677 publicly. Then point your users to your localtunnel URL.

Environment Variables

  • PORT - The port to run the SPSP receiver on. Default 6677.

Protocol Definition

ILRC is based on a JSON protocol, which differentiates it from IRC (based in plaintext).

Nick

Set nickname. Equivalent to IRC's NICK.

{
  "type": "nick",
  "nick": "Alice"
}

Privmsg

Send message to channel or user. Equivalent to IRC's PRIVMSG.

{
  "type": "privmsg",
  "channel": "#global",
  "message": "Hello World!"
}

TODOs

  • [X] Join and register nickname
  • [X] Send message
  • [X] Send message with money
  • [ ] Join channels
  • [X] Fix up UI
  • [X] Neaten up code
  • [X] Connect by Payment Pointer
  • [ ] Password persistence
  • [ ] Fix the readline interrupt when notifications come in
  • [ ] Convert server units to local units for display