Update README with Reddit Comparison

This commit is contained in:
spikecodes 2020-12-21 21:40:06 -08:00
parent 9ecbd25488
commit dc0b5f42e6
2 changed files with 81 additions and 6 deletions

View File

@ -2,7 +2,7 @@
> An alternative private front-end to Reddit > 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 - 🚀 Fast: written in Rust for blazing fast speeds and safety
- ☁️ Light: no javascript, no ads, no tracking - ☁️ 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 - 🔒 Safe: does not rely on Reddit OAuth or require a Reddit API Key
- 📱 Responsive: works great on mobile! - 📱 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 ## Screenshot
![](https://i.ibb.co/1RyKrBz/libreddit-rust.png) ![](https://i.ibb.co/1RyKrBz/libreddit-rust.png)
## Comparison
This section outlines how Libreddit compares to Reddit.
## About ## About
### Elsewhere ### 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). - 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. - 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 ## 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)!) - [libredd.it](https://libredd.it) 🇺🇸 (Thank you to [YeapGuy](https://github.com/YeapGuy)!)
- [libreddit.spike.codes](https://libreddit.spike.codes) 🇺🇸 - [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). 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. 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: 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 libreddit --no-default-features
``` ```
## Building from Source ## Building
``` ```
git clone https://github.com/spikecodes/libreddit git clone https://github.com/spikecodes/libreddit

View File

@ -18,7 +18,8 @@ struct PostTemplate {
} }
async fn render(id: String, sort: Option<String>, comment_id: Option<String>) -> Result<HttpResponse> { async fn render(id: String, sort: Option<String>, comment_id: Option<String>) -> Result<HttpResponse> {
// Log the post ID being fetched // Log the post ID being fetched in debug mode
#[cfg(debug_assertions)]
dbg!(&id); dbg!(&id);
// Handling sort paramater // Handling sort paramater