Giter Club home page Giter Club logo

ts-node-irc's Introduction

ts-node-irc

A dependency free Node/Typescript implementation of an IRC server.

Description

An implementation of an IRC server as defined by RFC 1459.

Try me

There's a running instance of the server on irc.corinv.dev on ports 6697 or 6667, connect using your favourite client. Note that SSL is not implemented yet so keep in mind:

  • You may need to edit the connection options to indicate SSL is not on
  • Your messages are very much not secure in transport!

Disclaimer

This is a work in progress, so functionality is currently missing.

It is also worth noting, that since the inital RFC 1459 there have been several more RFCs (see 2810, 2811, 2812, 2813) and that all modern clients will favour this.

The current implementation has been tested against Hexchat and very briefly against irssi. If you're experiencing an issue using a certain client, feel free to open an issue.

TODO

  • SSL
  • Tests
  • Logging
  • User/Channel modes
  • Finish implementing rest of commands

Getting Started

For local development:

Clone this project and then simply install the development dependencies and then run the dev script for a reloadable local server:

> npm i
> npm run dev

For deployment:

There's an included Dockerfile to build an image of the server for easy deployment:

docker build -t ts-node-irc .

The default configuration should work fine out of the box, but you can edit the server configuration by passing in environment variables as such:

docker run -e "SERVER_NAME='New server'" ts-node-irc

The valid environment variables will be specified in src/Config/Config.ts.

As the server relies on raw TCP sockets, certain services that deploy containers may not be suitable, such as Heroku who do not support such connections.

ts-node-irc's People

Contributors

corinv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.