{"id":25840062,"url":"https://github.com/pusateri/rslogd","last_synced_at":"2025-07-28T02:04:08.503Z","repository":{"id":74508053,"uuid":"186868136","full_name":"pusateri/rslogd","owner":"pusateri","description":"syslog server written in Rust as an introduction to mio for Triangle Rustaceans","archived":false,"fork":false,"pushed_at":"2019-06-30T01:54:30.000Z","size":50,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T04:41:24.344Z","etag":null,"topics":["mio","rust","syslog"],"latest_commit_sha":null,"homepage":"https://www.meetup.com/triangle-rustaceans/events/mfglwpyzlbjc/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pusateri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-05-15T16:52:18.000Z","updated_at":"2025-02-20T22:29:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"990b6258-7ac6-43c1-a017-a7b80153f51e","html_url":"https://github.com/pusateri/rslogd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pusateri/rslogd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusateri%2Frslogd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusateri%2Frslogd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusateri%2Frslogd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusateri%2Frslogd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pusateri","download_url":"https://codeload.github.com/pusateri/rslogd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pusateri%2Frslogd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267451490,"owners_count":24089312,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"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":["mio","rust","syslog"],"created_at":"2025-03-01T04:40:19.063Z","updated_at":"2025-07-28T02:04:08.494Z","avatar_url":"https://github.com/pusateri.png","language":"Rust","readme":"# rslogd\nsyslog server written in Rust as an introduction to [mio](https://github.com/tokio-rs/mio) for [Triangle Rustaceans](https://www.meetup.com/triangle-rustaceans/events/mfglwpyzlbjc/) August 2019 Meetup.\n\nEach stage provides a few more features to discuss. To run the syslog server, you'll need to be root or sudo in order to open port 514 and port 601. Use the following commands to build and run:\n\n```\ncargo build\nsudo target/debug/rslogd  --certs ./my.server.com/cert.pem --key ./my.server.com/privkey.pem\n```\n\nTest Commands\n=============\nFor testing over udp, the following clients will work:\n\n```\n# Linux\nlogger -s -i -n 127.0.0.1 testing\n\n# macOS\nsyslog -s -r 127.0.0.1 testing\n```\n\nFor testing over TCP, use the following command:\n\n```\n# Linux\nlogger -s -T -P 601 -i -n 127.0.0.1 test TCP message\n```\n\nFor testing with TLS, use the gnutls-cli command to encapsualte the syslog message:\n\n```\n# Linux, FreeBSD, or macOS\ngnutls-cli my.server.com --port=6514 --x509cafile=./letsencrypt/letsencryptauthorityx3.pem.txt\n```\n\nThen paste in the preformatted syslog line terminating with Ctl-D:\n\n```\n\u003c7\u003eMay 29 09:20:57 client.example.com syslog[32674]: testing\n^D\n```\n\nStage 1\n=======\nStage 1 is the initial UDP only version over IPv4 ([RFC 5426](https://tools.ietf.org/html/rfc5426)). It prints a line for each received syslog packet to port 514 but does not decode it. To see Stage 1, use:\n\n```\ngit checkout stage1\n```\n\nStage 2\n=======\nStage 2 adds UDP over IPv6 and adds syslog packet decoding. It supports 3 types of syslog packets:\n\n1. Original BSD syslog ([RFC 3164](https://tools.ietf.org/html/rfc3164))\n2. syslog Version 1 ([RFC 5424](https://tools.ietf.org/html/rfc5424))\n3. Apple System Logger (asl)\n\nTo see Stage 2, use:\n\n```\ngit checkout stage2\n```\n\nStage 3\n=======\nStage 3 adds TCP over IPv4 and IPv6 ([RFC 6587](https://tools.ietf.org/html/rfc6587)). Syslog over TCP shouldn't be used anymore (deprecated in favor of TLS). But adding it as a stage gives us understanding about using mio with TCP.\n\nTo see Stage 3, use:\n\n```\ngit checkout stage3\n```\n\nStage 4\n=======\nStage 4 adds TLS over IPv4 support to syslog as described in [RFC 5425](https://tools.ietf.org/html/rfc5425). Adds command line options to provide certificates and private key.\n\nTo see Stage 4, use:\n\n```\ngit checkout stage4\n```\n\nStage 5\n=======\nStage 5 adds TLS over IPv6 support and an index pool for tokens.\n\nTo see Stage 5, use:\n\n```\ngit checkout stage5\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpusateri%2Frslogd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpusateri%2Frslogd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpusateri%2Frslogd/lists"}