https://github.com/arborchat/yggdrasil
[legacy] C client for the Arbor chat protocol
https://github.com/arborchat/yggdrasil
arborchat c client
Last synced: 5 months ago
JSON representation
[legacy] C client for the Arbor chat protocol
- Host: GitHub
- URL: https://github.com/arborchat/yggdrasil
- Owner: arborchat
- License: apache-2.0
- Created: 2018-10-15T22:01:40.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-11T00:03:49.000Z (about 7 years ago)
- Last Synced: 2025-12-04T22:01:19.118Z (6 months ago)
- Topics: arborchat, c, client
- Language: C
- Homepage:
- Size: 120 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: history.c
- License: LICENSE
Awesome Lists containing this project
README
# Yggdrasil
This is an arbor chat client for the proof-of-concept protocol.
You can find information about the Arbor project [here](https://man.sr.ht/~whereswaldon/arborchat/)
## Status
Yggdrasil 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.
## Dependencies
Yggdrasil's Dependencies are all vendored with the exception of the C standard
library. Yggdrasil is developed against [MUSL Libc](http://www.musl-libc.org/), so the makefile tries to use that
by default. To build Yggdrasil, you'll either need to install the MUSL GCC wrapper
or change the value of `CC` in the makefile to `CC=gcc`.
### Notes on `json-parser`
This JSON-parsing library was chosen because of its impressively good results at
handling strange JSON objects in [this evaluation of JSON parsers](http://seriot.ch/parsing_json.php).
It is included in this repository as a git subtree.
You can find the canonical repo [here](https://github.com/udp/json-parser).
### Notes on `json-builder`
This JSON-serializng library was chosen because it played so nicely with the parser above.
It is included in this repository as a git subtree.
You can find the canonical repo [here](https://github.com/udp/json-builder).
### Notes on `c_hashmap`
This is a simple C implementation of a generic hashmap data structure. I've used it for other
projects and it seems good enough for my needs.
It is included in this repository as a git subtree.
You can find the canonical repo [here](https://github.com/petewarden/c_hashmap).
### Notes on `CuTest`
This C test framework was chosen for simplicity. I have vendored it without a subtree
or submodule because the original source is not managed with `git`.
You can find the canonical website for CuTest [here](http://cutest.sourceforge.net/).
## Build
Use `make` to build the `ygg` executable. `ygg` connects to an arbor server
on `localhost:7777`. This is currently hard-coded.
## Test
Run `make test` to build and run the tests.
## Use
If you have arbor running locally, just type `./ygg`.
If you want to connect to a remote server, `./ygg `.