{"id":15293664,"url":"https://github.com/nozeio/swift-nio-irc-server","last_synced_at":"2025-05-07T03:44:44.758Z","repository":{"id":63919334,"uuid":"130865219","full_name":"NozeIO/swift-nio-irc-server","owner":"NozeIO","description":"A Internet Relay Chat (IRC) server for SwiftNIO","archived":false,"fork":false,"pushed_at":"2019-03-29T18:08:48.000Z","size":57,"stargazers_count":39,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-05-07T03:44:33.467Z","etag":null,"topics":["eliza-chatbot","irc-client","irc-server","swift-nio","swift4"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NozeIO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-24T14:15:31.000Z","updated_at":"2025-04-10T20:54:03.000Z","dependencies_parsed_at":"2023-01-14T14:00:31.314Z","dependency_job_id":null,"html_url":"https://github.com/NozeIO/swift-nio-irc-server","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NozeIO%2Fswift-nio-irc-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NozeIO%2Fswift-nio-irc-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NozeIO%2Fswift-nio-irc-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NozeIO%2Fswift-nio-irc-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NozeIO","download_url":"https://codeload.github.com/NozeIO/swift-nio-irc-server/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252810273,"owners_count":21807759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eliza-chatbot","irc-client","irc-server","swift-nio","swift4"],"created_at":"2024-09-30T16:50:27.669Z","updated_at":"2025-05-07T03:44:44.741Z","avatar_url":"https://github.com/NozeIO.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwiftNIO IRC Server\n\n![Swift4](https://img.shields.io/badge/swift-4-blue.svg)\n![Swift5](https://img.shields.io/badge/swift-5-blue.svg)\n![macOS](https://img.shields.io/badge/os-macOS-green.svg?style=flat)\n![tuxOS](https://img.shields.io/badge/os-tuxOS-green.svg?style=flat)\n![Travis](https://travis-ci.org/NozeIO/swift-nio-irc-webclient.svg?branch=develop)\n\n[SwiftNIO IRC](https://github.com/NozeIO/swift-nio-irc)\nis a Internet Relay Chat protocol implementation for\n[SwiftNIO](https://github.com/apple/swift-nio),\na basis for building your own IRC servers and clients,\na sample IRC server, as well as some IRC bots written in the\n[Swift](http://swift.org) programming language.\n\n*SwiftNIO IRC Server* is a framework to build IRC servers on top of\n[SwiftNIO IRC](https://github.com/NozeIO/swift-nio-irc).\n\nWant to build a customer-support chat system?\nAnd your customers happen to be Unix people from the 80s and early 90s?\nWhat a great match!\n\nThis Swift package contains the reusable `IRCServer` module,\nand the `MiniIRCd`, a small and working IRC sample server.\n\nMiniIRCd also configures, embeds and runs:\n\n- [swift-nio-irc-webclient](https://github.com/NozeIO/swift-nio-irc-webclient) -\n  a simple IRC webclient + WebSocket gateway based on SwiftNIO IRC, and\n- [swift-nio-irc-eliza](https://github.com/NozeIO/swift-nio-irc-eliza) -\n  a cheap yet scalable therapist.\n\n\n## What it looks like\n\nOn the surface it is a very simple chat webapp, with basic support for\nchannels and direct messages:\n\n\u003cimg src=\"http://zeezide.de/img/irc-eliza.png\" width=\"640\" /\u003e\n\n**Sometimes** a live demo installation is running on\n[http://irc.noze.io/](http://irc.noze.io/).\n\nApart from the web frontend, MiniIRCd also embeds an actual IRC server, that is, \nyou can connect to the server using native clients like\n[Mutter](https://www.mutterirc.com),\n[Irssi](https://irssi.org)\nor\n[Textual](https://www.codeux.com/textual/).\n\n\u003cimg src=\"http://zeezide.de/img/mutter-irc-setup.gif\" /\u003e\n\n\n## Overview\n\nThe `IRCServer` module which is part of this package, only links against the\n`NIOIRC`\nprotocol module of [SwiftNIO IRC](https://github.com/NozeIO/swift-nio-irc).\n\nThe included `MiniIRCd` tool on the other hand, also spins up the\n[IRC/WebSocket gateway](https://github.com/NozeIO/swift-nio-irc-webclient),\nincludes the webapp and starts up the \n[ElizaBot](https://github.com/NozeIO/swift-nio-irc-eliza).\n\n```\n                             ┌──────────────────────────────────────────────────┐\n                             │ ┌───────────────────────┐       ┌──────────────┐ │\n               HTML          │ │  ┌─────────────────┐  │       │    Eliza     │ │\n        ┌───────JS───────────┼─┼──│ NIO HTTP Server │  │       │     Bot      │ │\n        │                    │ │  └─────────────────┘  │       └──────────────┘ │\n        │                    │ │           │           │               │        │\n        ▼                    │ │       Upgrades        │              IRC       │\n┌──────────────┐             │ │      Connection       │               │        │\n│              │             │ │           │           │               ▼        │\n│  WebBrowser  │             │ │           ▼           │       ┌──────────────┐ │\n│              │  WebSocket  │ │  ┌─────────────────┐  │       │              │ │\n│  JavaScript  │◀────JSON────┼─┼─▶│  NIO WebSocket  │◀─┼─IRC──▶│  IRC Server  │ │\n│    WebApp    │             │ │  └─────────────────┘  │       │              │ │\n│              │             │ │       WebServer       │       └──────────────┘ │\n└──────────────┘             │ └───────────────────────┘                        │\n                             │                                                  │\n                             │       All Services Run as Part of MiniIRCd       │\n                             └──────────────────────────────────────────────────┘\n```\n\n\n## Running the Server\n\nTo get started, just checkout the repository and call `swift run`:\n\n```\nhelge@ZeaPro swift-nio-irc-server (develop)*$ swift  run\nFetching https://github.com/apple/swift-nio.git\n...\nCompile Swift Module 'miniircd' (2 sources)\nLinking ./.build/x86_64-apple-macosx10.10/debug/miniircd\n __  __ _       _ _____ _____   _____\n |  \\/  (_)     (_)_   _|  __ \\ / ____|   Swift IRCd\n | \\  / |_ _ __  _  | | | |__) | |\n | |\\/| | | '_ \\| | | | |  _  /| |        Port: 6667\n | |  | | | | | | |_| |_| | \\ \\| |____    PID:  2343\n |_|  |_|_|_| |_|_|_____|_|  \\_\\\\_____|\n\nReady to accept connections on: [IPv4]0.0.0.0:6667\nIRCWebClientServer running on: [IPv4]0.0.0.0:1337\nEliza is ready and listening!\n````\n\nYou can then connect via IRC on `localhost:6667` or\nto the web frontend on [http://localhost:1337/](http://localhost:1337).\n\n\n## Importing the module using Swift Package Manager\n\nAn example `Package.swift `importing the necessary modules:\n\n```swift\n// swift-tools-version:5.0\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"MyOwnIRCServer\",\n    dependencies: [\n        .package(url: \"https://github.com/NozeIO/swift-nio-irc-server.git\",\n                 from: \"0.5.0\")\n    ],\n    targets: [\n        .target(name: \"MyOwnIRCServer\",\n                dependencies: [ \"IRCServer\" ])\n    ]\n)\n```\n\n\n### Who\n\nBrought to you by\n[ZeeZide](http://zeezide.de).\nWe like\n[feedback](https://twitter.com/ar_institute),\nGitHub stars,\ncool [contract work](http://zeezide.com/en/services/services.html),\npresumably any form of praise you can think of.\n\nNIOIRC is a SwiftNIO port of the\n[Noze.io miniirc](https://github.com/NozeIO/Noze.io/tree/master/Samples/miniirc)\nexample from 2016.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnozeio%2Fswift-nio-irc-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnozeio%2Fswift-nio-irc-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnozeio%2Fswift-nio-irc-server/lists"}