🐀 Building a federated link aggregator in rust
Go to file
Nutomic a2a594b763
Extract Activitypub logic into separate library (#2288)
* Create example for apub lib

* some rewriting of apub lib

* Add LocalInstance struct for apub lib to avoid using Lemmy Settings

* Move ActorType trait to lemmy_apub, because its not needed in library

* Use reqwest_retry instead of custom impl, dont specify timeout on every send()

* Some improvements to example

* Moved inbox handling to library

* bug fixes

* Move context and serde helpers into library

* wip: example changes

* Add lemmy_utils feature to build only LemmyError

* Rename to activitypub_federation

* Remove lemmy_utils dep from activitypub_federation using generic error type

* Finish activitypub example

* Cleanup and fix tests

* Reorganize library files

* Remove ApubObject.to_tombstone()

* Extract activitypub library into separate git repository
2022-06-02 16:33:41 +02:00
.cargo Add console-subscriber (#2003) 2022-01-07 09:53:45 -05:00
.github Adding codeowners. (#2080) 2022-02-01 16:37:30 +00:00
api_tests Extract Activitypub logic into separate library (#2288) 2022-06-02 16:33:41 +02:00
config Add default post listing type (fixes #2195) (#2209) 2022-04-19 19:05:08 +00:00
crates Extract Activitypub logic into separate library (#2288) 2022-06-02 16:33:41 +02:00
docker Version 0.16.5 2022-05-30 18:32:31 -04:00
migrations Revert "Add pending, and change use specific API response for FollowCommunity…" (#2283) 2022-05-26 11:17:04 -04:00
migrations_testing/2020-01-13-025151_create_materialized_views Isomorphic docker (#1124) 2020-09-15 15:26:47 -04:00
readmes Change lemmur repo links (#1977) 2021-12-06 08:17:59 -05:00
scripts Add update translations script. (#2173) 2022-03-29 16:54:16 +00:00
src Extract Activitypub logic into separate library (#2288) 2022-06-02 16:33:41 +02:00
.dockerignore For untagged commits, include hash in version name (fixes #1563) 2021-04-12 13:47:58 +02:00
.drone.yml Add drone task for nightly build (#2264) 2022-05-19 20:30:16 +00:00
.gitignore Ansible changes (#1781) 2021-09-28 11:34:18 -04:00
.gitmodules WIP: Email localization (fixes #500) (#2053) 2022-03-24 15:25:51 +00:00
.rgignore Adding a new comment sort for posts. Fixes #1294 (#1425) 2021-02-18 10:38:25 -05:00
.rustfmt.toml Update to Rust 1.60 (#2247) 2022-05-10 17:04:40 +00:00
Cargo.lock Extract Activitypub logic into separate library (#2288) 2022-06-02 16:33:41 +02:00
Cargo.toml Extract Activitypub logic into separate library (#2288) 2022-06-02 16:33:41 +02:00
CONTRIBUTING.md Change join.lemmy.ml to join-lemmy.org (#1628) 2021-06-07 21:10:47 +00:00
LICENSE Initial commit 2019-02-14 09:17:18 -08:00
README.md Add jerboa link to readme. Fixes #2137 2022-03-22 18:32:50 +00:00
RELEASES.md Update releases.md 2022-05-27 09:48:11 -04:00
SECURITY.md Create SECURITY.md (#1758) 2021-09-02 12:09:48 +00:00

GitHub tag (latest SemVer) Build Status GitHub issues Docker Pulls Translation status License GitHub stars Awesome Humane Tech

English | Español | Русский

Lemmy

A link aggregator / Reddit clone for the fediverse.

Join Lemmy · Documentation · Report Bug · Request Feature · Releases · Code of Conduct

About The Project

Desktop Mobile
desktop mobile

Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the Fediverse.

For a link aggregator, this means a user registered on one server can subscribe to forums on any other server, and can have discussions with users registered elsewhere.

The overall goal is to create an easily self-hostable, decentralized alternative to Reddit and other link aggregators, outside of their corporate control and meddling.

Each Lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.

Note: The WebSocket and HTTP APIs are currently unstable

Why's it called Lemmy?

Built With

Features

  • Open source, AGPL License.
  • Self hostable, easy to deploy.
  • Clean, mobile-friendly interface.
    • Only a minimum of a username and password is required to sign up!
    • User avatar support.
    • Live-updating Comment threads.
    • Full vote scores (+/-) like old Reddit.
    • Themes, including light, dark, and solarized.
    • Emojis with autocomplete support. Start typing :
    • User tagging using @, Community tagging using !.
    • Integrated image uploading in both posts and comments.
    • A post can consist of a title and any combination of self text, a URL, or nothing else.
    • Notifications, on comment replies and when you're tagged.
      • Notifications can be sent via email.
      • Private messaging support.
    • i18n / internationalization support.
    • RSS / Atom feeds for All, Subscribed, Inbox, User, and Community.
  • Cross-posting support.
    • A similar post search when creating new posts. Great for question / answer communities.
  • Moderation abilities.
    • Public Moderation Logs.
    • Can sticky posts to the top of communities.
    • Both site admins, and community moderators, who can appoint other moderators.
    • Can lock, remove, and restore posts and comments.
    • Can ban and unban users from communities and the site.
    • Can transfer site and communities to others.
  • Can fully erase your data, replacing all posts and comments.
  • NSFW post / community support.
  • High performance.
    • Server is written in rust.
    • Front end is ~80kB gzipped.
    • Supports arm64 / Raspberry Pi.

Installation

Lemmy Projects

Apps

Libraries

Support / Donate

Lemmy is free, open-source software, meaning no advertising, monetizing, or venture capital, ever. Your donations directly support full-time development of the project.

Crypto

  • bitcoin: 1Hefs7miXS5ff5Ck5xvmjKjXf5242KzRtK
  • ethereum: 0x400c96c96acbC6E7B3B43B1dc1BB446540a88A01
  • monero: 41taVyY6e1xApqKyMVDRVxJ76sPkfZhALLTjRvVKpaAh2pBd4wv9RgYj1tSPrx8wc6iE1uWUfjtQdTmTy2FGMeChGVKPQuV
  • cardano: addr1q858t89l2ym6xmrugjs0af9cslfwvnvsh2xxp6x4dcez7pf5tushkp4wl7zxfhm2djp6gq60dk4cmc7seaza5p3slx0sakjutm

Contributing

Translations

If you want to help with translating, take a look at Weblate. You can also help by translating the documentation.

Contact

Code Mirrors

Credits

Logo made by Andy Cuccaro (@andycuccaro) under the CC-BY-SA 4.0 license.