{"id":16842620,"url":"https://github.com/rofl0r/jsbot","last_synced_at":"2026-05-18T02:35:18.090Z","repository":{"id":138311544,"uuid":"79603410","full_name":"rofl0r/jsbot","owner":"rofl0r","description":"tiny javascript irc bot with ssl support","archived":false,"fork":false,"pushed_at":"2019-04-12T23:56:25.000Z","size":27,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-28T23:33:12.036Z","etag":null,"topics":["c","irc","ircbot","javascript","mujs"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rofl0r.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-20T21:58:40.000Z","updated_at":"2024-08-12T19:27:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"87e6b8cc-08f2-4ab4-bbd9-0d8bf8c4cdee","html_url":"https://github.com/rofl0r/jsbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rofl0r/jsbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fjsbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fjsbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fjsbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fjsbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rofl0r","download_url":"https://codeload.github.com/rofl0r/jsbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fjsbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","irc","ircbot","javascript","mujs"],"created_at":"2024-10-13T12:47:23.709Z","updated_at":"2026-05-18T02:35:18.067Z","avatar_url":"https://github.com/rofl0r.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"jsbot - an efficient javascript IRC bot\n=======================================\n\nthis is a very space- and memory-efficient javascript IRC bot.\nthe core is written in C and uses [mujs][0] as a tiny javascript interpreter,\nand [rocksock][1] as a very efficient network socket implementation with\nSSL support.\na static linked binary is about 350 KB, if it was linked against\n[musl libc][2], and rocksock was built against [wolfssl][3].\n\nusage\n-----\n\nin order to use the ircbot, you need a config file:\n\n```\n#comment\nhost1=chat.freenode.net\nhost2=kornbluth.freenode.net\nport=6697\nssl=1\nnick1=mybot\nnick2=mybot_\nproxy=socks4://127.0.0.1:9050\nsavefile=mybot.json\n```\n\nthen start the bot like `./jsbot mybot.cfg`.\nyou also need a file `ircbot.js` that implements the callbacks the C code\ntries to call. look at the provided example to see how it works.\nthe bot saves its settings into the filename you provide as savefile in\nthe config, when it calls its writesettings() callback.\n\ncompilation\n-----------\n\n- install mujs, C compiler, python2 (for rcb2)\n\n```sh\ncd /tmp\nmkdir jsbot-0000\ncd jsbot-0000/\ngit clone https://github.com/rofl0r/jsbot\ngit clone https://github.com/rofl0r/rocksock\ngit clone https://github.com/rofl0r/rcb2\nexport PATH=$PATH:/tmp/jsbot-0000/rcb2\nln -s /tmp/jsbot-0000/rcb2/rcb2.py /tmp/jsbot-0000/rcb2/rcb2\ncd jsbot\n\n#you may edit config.mak to override settings from Makefile\n#nano config.mak\n\nmake\n```\n\nalternative compilation method\n------------------------------\n\nif you don't want to use the above method, for example because you don't have\nperl, you can compile and install rocksock the standard way\n(`./configure \u0026\u0026 make \u0026\u0026 make install`), then compile rocksock's rsirc.c\n`gcc -c rocksockirc/rsirc.c`\nthen compile jsbot.c\n`gcc jsbot.c rocksockirc/rsirc.o -lrocksock -lmujs -o jsbot`.\nthis is to give you an idea what needs to be done, it may work slightly\ndifferent in your case.\n\nlegal stuff\n-----------\n\nthe code within this project is licensed under the GNU GPLv2 or later.\nthe mujs library on which it depends is licensed under the GNU AGPLv3.\ndue to the viral nature of the licences, this means that complete project\n(and hence any binary distributed versions) are covered by the GNU AGPL,\nrather than the less restrictive GNU GPL.\n\n\n[0]:http://mujs.com/\n[1]:https://github.com/rofl0r/rocksock\n[2]:http://www.musl-libc.org/\n[3]:https://wolfssl.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frofl0r%2Fjsbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frofl0r%2Fjsbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frofl0r%2Fjsbot/lists"}