{"id":38298382,"url":"https://github.com/arborchat/yggdrasil","last_synced_at":"2026-01-17T02:21:46.524Z","repository":{"id":133808369,"uuid":"153187308","full_name":"arborchat/yggdrasil","owner":"arborchat","description":"[legacy] C client for the Arbor chat protocol","archived":false,"fork":false,"pushed_at":"2019-06-11T00:03:49.000Z","size":123,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-04T22:01:19.118Z","etag":null,"topics":["arborchat","c","client"],"latest_commit_sha":null,"homepage":"","language":"C","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/arborchat.png","metadata":{"files":{"readme":"README.md","changelog":"history.c","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}},"created_at":"2018-10-15T22:01:40.000Z","updated_at":"2021-05-07T13:37:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef09e2ed-fd5b-46ed-b68d-688c6900d180","html_url":"https://github.com/arborchat/yggdrasil","commit_stats":{"total_commits":69,"total_committers":1,"mean_commits":69.0,"dds":0.0,"last_synced_commit":"57eb80080fedb3a2ed1aaa1eb4e4b12e616a35e8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arborchat/yggdrasil","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arborchat%2Fyggdrasil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arborchat%2Fyggdrasil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arborchat%2Fyggdrasil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arborchat%2Fyggdrasil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arborchat","download_url":"https://codeload.github.com/arborchat/yggdrasil/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arborchat%2Fyggdrasil/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"online","status_checked_at":"2026-01-17T02:00:07.808Z","response_time":85,"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":["arborchat","c","client"],"created_at":"2026-01-17T02:21:46.445Z","updated_at":"2026-01-17T02:21:46.501Z","avatar_url":"https://github.com/arborchat.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yggdrasil\n\nThis is an arbor chat client for the proof-of-concept protocol.\n\nYou can find information about the Arbor project [here](https://man.sr.ht/~whereswaldon/arborchat/)\n\n## Status\n\nYggdrasil can connect to an arbor server, display recent messages, and reply to any message that it has recieved. It's not particularly elegant right now, but we hope to change that.\n\n## Dependencies\n\nYggdrasil's Dependencies are all vendored with the exception of the C standard\nlibrary. Yggdrasil is developed against [MUSL Libc](http://www.musl-libc.org/), so the makefile tries to use that\nby default. To build Yggdrasil, you'll either need to install the MUSL GCC wrapper\nor change the value of `CC` in the makefile to `CC=gcc`.\n\n### Notes on `json-parser`\n\nThis JSON-parsing library was chosen because of its impressively good results at\nhandling strange JSON objects in [this evaluation of JSON parsers](http://seriot.ch/parsing_json.php).\n\nIt is included in this repository as a git subtree.\n\nYou can find the canonical repo [here](https://github.com/udp/json-parser).\n\n### Notes on `json-builder`\n\nThis JSON-serializng library was chosen because it played so nicely with the parser above.\n\nIt is included in this repository as a git subtree.\n\nYou can find the canonical repo [here](https://github.com/udp/json-builder).\n\n### Notes on `c_hashmap`\n\nThis is a simple C implementation of a generic hashmap data structure. I've used it for other\nprojects and it seems good enough for my needs.\n\nIt is included in this repository as a git subtree.\n\nYou can find the canonical repo [here](https://github.com/petewarden/c_hashmap).\n\n### Notes on `CuTest`\n\nThis C test framework was chosen for simplicity. I have vendored it without a subtree\nor submodule because the original source is not managed with `git`.\n\nYou can find the canonical website for CuTest [here](http://cutest.sourceforge.net/).\n\n## Build\n\nUse `make` to build the `ygg` executable. `ygg` connects to an arbor server\non `localhost:7777`. This is currently hard-coded.\n\n## Test\n\nRun `make test` to build and run the tests.\n\n## Use\n\nIf you have arbor running locally, just type `./ygg`.\n\nIf you want to connect to a remote server, `./ygg \u003cIPv4_ADDR\u003e \u003cPORT\u003e`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farborchat%2Fyggdrasil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farborchat%2Fyggdrasil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farborchat%2Fyggdrasil/lists"}