diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..3c7dbe5 --- /dev/null +++ b/Readme.md @@ -0,0 +1,17 @@ +# Hash2Pub + +***This is heavily WIP and does not provide any useful functionality yet***. +I aim for always having the master branch at a state where it builds and tests pass. + +A fully-decentralised relay for global hashtag federation in [ActivityPub](https://activitypub.rocks) based on a distributed hash table. +It allows querying and subscribing to all posts of a certain hashtag and is implemented in Haskell. + +This is the practical implementation of the concept presented in the paper [Decentralised Hashtag Search and Subscription for Federated Social Networks](https://git.orlives.de/schmittlauch/paper_hashtag_federation). A 30 minutes [introduction talk](https://conf.tube/videos/watch/340eb706-28c0-4a43-9364-700297ca96cb) is available as well. + +The ASN.1 module schema used for DHT messages can be found in `FediChord.asn1`. + +## Building + +The project and its developent environment are built with [Nix](https://nixos.org/nix/). + +The development environment can be entered with `nix-shell`. Then the project can be built with `cabal build` from within the environment, or using `nix-shell --command "cabal build"` to do both steps at once.