||9 months ago|
|app||2 years ago|
|src||2 years ago|
|test||2 years ago|
|.gitignore||2 years ago|
|.hlint.yaml||2 years ago|
|CHANGELOG.md||2 years ago|
|FediChord.asn1||2 years ago|
|Hash2Pub.cabal||1 year ago|
|LICENSE||2 years ago|
|Readme.md||9 months ago|
|Setup.hs||2 years ago|
|cabal.project.renameinfuture||2 years ago|
|default.nix||1 year ago|
|democlient.hs||2 years ago|
|demoserver.hs||2 years ago|
|hashtest.hs||2 years ago|
|shell-minimal.nix||2 years ago|
|shell.nix||1 year ago|
|stylish.sh||2 years ago|
This is heavily WIP and does not provide any useful functionality yet.
I aim for always having the
mainline branch in a state where it builds and tests pass.
A fully-decentralised relay for global hashtag federation in ActivityPub 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. A 30 minutes introduction talk is available as well.
The ASN.1 module schema used for DHT messages can be found in
For further questions and discussins, please refer to the Hash2Pub topic in SocialHub.
The project and its developent environment are built with Nix.
The development environment can be entered with
nix-shell shell-minimal.nix. Then the project can be built with
cabal build from within the environment, or using
nix-shell --command "cabal build" shell-minimal.nix to do both steps at once.
shell-minimal.nix environment contains everything necessary for building and testing this project, the
shell.nix additionally contains the Haskell IDE engine hie and the documentation for all used Haskell packages for more convenient development.
Be aware that these need to be build from source and can take a very long time to build.