From dc0b5f42e68ae1bd0d664a4deae789db9aa48bbc Mon Sep 17 00:00:00 2001 From: spikecodes <19519553+spikecodes@users.noreply.github.com> Date: Mon, 21 Dec 2020 21:40:06 -0800 Subject: [PATCH] Update README with Reddit Comparison --- README.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++---- src/post.rs | 3 +- 2 files changed, 81 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0791a74..8da3975 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > An alternative private front-end to Reddit -Libre + Reddit = Libreddit +Libre + Reddit = [Libreddit](https://libredd.it) - πŸš€ Fast: written in Rust for blazing fast speeds and safety - ☁️ Light: no javascript, no ads, no tracking @@ -10,12 +10,36 @@ Libre + Reddit = Libreddit - πŸ”’ Safe: does not rely on Reddit OAuth or require a Reddit API Key - πŸ“± Responsive: works great on mobile! -Think Invidious but for Reddit. Watch your cat videos without being watched. +Inspired by other great alternative front-ends including [Invidious](https://github.com/iv-org/invidious), [Nitter](https://github.com/zedeus/nitter) and [Biliogram](https://github.com/cloudrac3r/bibliogram). + +## Contents +- [Screenshot](#screenshot) +- [About](#about) + - [Elsewhere](#elsewhere) + - [Info](#info) + - [In Progress](#in-progress) + - [Teddit Comparison](#how-does-it-compare-to-teddit) +- [Comparison](#comparison) + - [Speed](#speed) + - [Privacy](#privacy) +- [Instances](#instances) +- [Installation](#installation) + - [Cargo](#a-cargo) + - [Docker](#b-docker) + - [AUR](#c-aur) + - [GitHub Releases](#d-github-releases) +- Developing + - [Deployment](#deployment) + - [Building](#building) ## Screenshot ![](https://i.ibb.co/1RyKrBz/libreddit-rust.png) +## Comparison + +This section outlines how Libreddit compares to Reddit. + ## About ### Elsewhere @@ -42,9 +66,59 @@ If you are looking to compare, the biggest differences I have noticed are: - Libreddit is written in Rust for speed and memory safety. It uses Actix Web, which was [benchmarked as the fastest web server for single queries](https://www.techempower.com/benchmarks/#hw=ph&test=db). - Unlike Teddit (at the time of writing this), Libreddit does not require a Reddit API key to host. + +### Speed + +Lasted tested December 21, 2020. + +Results from Google Lighthouse ([Libreddit Report](https://lighthouse-dot-webdotdevsite.appspot.com/lh/html?url=https%3A%2F%2Flibredd.it), [Reddit Report](https://lighthouse-dot-webdotdevsite.appspot.com/lh/html?url=https%3A%2F%2Fwww.reddit.com%2F)). + +| | Libreddit | Reddit | +|---------------------|---------------|-----------| +| Requests | 22 | 70 | +| Resource Size | 135 KiB | 2,222 KiB | +| Time to Interactive | **1.7 s** | **11.5 s**| + +### Privacy + +#### Reddit + +According to Reddit's [privacy policy](https://www.redditinc.com/policies/privacy-policy), they "may [automatically] log information" including: +- IP address +- User-agent string +- Browser type +- Operating system +- Referral URLs +- Device information (e.g., device IDs) +- Device settings +- Pages visited +- Links clicked +- The requested URL +- Search terms + +The same privacy policy goes on to describe location data may be collected through the use of: +- GPS (consensual) +- Bluetooth (consensual) +- Content associated with a location (consensual) +- Your IP Address + +Reddit's [cookie notice](https://www.redditinc.com/policies/cookies) documents the array of cookies used by Reddit including/regarding: +- Authentication +- Functionality +- Analytics and Performance +- Advertising +- Third-Party Cookies +- Third-Party Site + +#### Liberddit + +In production (when running the binary, hosting with docker, or using the official instances), Libreddit logs nothing. When debugging (running from source without `--release`), Libreddit logs post IDs fetched to aid troubleshooting but nothing else. + +Both official domains (`libredd.it` and `libreddit.spike.codes`) use Cloudflare. This may violate certain users' threat models and therefore, selfhosting is welcomed. + ## Instances -Feel free to [open an issue](https://github.com/spikecodes/libreddit/issues/new) to have your selfhosted instance listed here! +Feel free to [open an issue](https://github.com/spikecodes/libreddit/issues/new) to have your [selfhosted instance](#deployment) listed here! - [libredd.it](https://libredd.it) πŸ‡ΊπŸ‡Έ (Thank you to [YeapGuy](https://github.com/YeapGuy)!) - [libreddit.spike.codes](https://libreddit.spike.codes) πŸ‡ΊπŸ‡Έ @@ -85,7 +159,7 @@ yay -S libreddit-git If you're on Linux and none of these methods work for you, you can grab a Linux binary from [the newest release](https://github.com/spikecodes/libreddit/releases/latest). Currently Libreddit does not have Windows or MacOS binaries but those will be available soon. -## Deploy an Instance +## Deployment Once installed, deploy Libreddit (unless you're using Docker) by running: @@ -103,7 +177,7 @@ To disable the media proxy built into Libreddit, run: libreddit --no-default-features ``` -## Building from Source +## Building ``` git clone https://github.com/spikecodes/libreddit diff --git a/src/post.rs b/src/post.rs index 4746ff7..ed42a26 100644 --- a/src/post.rs +++ b/src/post.rs @@ -18,7 +18,8 @@ struct PostTemplate { } async fn render(id: String, sort: Option, comment_id: Option) -> Result { - // Log the post ID being fetched + // Log the post ID being fetched in debug mode + #[cfg(debug_assertions)] dbg!(&id); // Handling sort paramater