A DHT-based relay and post store for ActivityPub hashtags
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Trolli Schmittlauch b8eeb852da Merge pull request 'Linting integration' (#17) from Hecate/Hash2Pub:hlint-configuration into master
Introduce some code formatting guidelines and enforce them with hlint and stylish:

- End-of-line extra spaces removal;
- Import lines ordering;
- Redundant ($) removal;
- Generalisation of (++) and map to (<>) and fmap;
- Preferring pure over return;
- Removing extraenous extensions.
3 years ago
src Linting integration 3 years ago
test Linting integration 3 years ago
.gitignore remove unnecessary directory level 3 years ago
.hlint.yaml Linting integration 3 years ago
CHANGELOG.md remove unnecessary directory level 3 years ago
FediChord.asn1 remove unnecessary directory level 3 years ago
Hash2Pub.cabal remove unnecessary directory level 3 years ago
LICENSE remove unnecessary directory level 3 years ago
Readme.md add readme 3 years ago
Setup.hs remove unnecessary directory level 3 years ago
default.nix add stylish as haskell linter 3 years ago
democlient.hs remove unnecessary directory level 3 years ago
demoserver.hs remove unnecessary directory level 3 years ago
hashtest.hs remove unnecessary directory level 3 years ago
shell.nix remove unnecessary directory level 3 years ago
stylish.sh Linting integration 3 years ago

Readme.md

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 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 FediChord.asn1.

Building

The project and its developent environment are built with 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.