Credits

If paste was a movie, these would be at the end.

People

Kyle Clemens

@jkcclemens

Lead developer and Rust aficionado who hates frontend.

Adam Williams

@lol768

The best infosec consultant, tester, and cheerleader money can't buy.

kashike

@kashike

Feature requester/demander, tester, bug noticer, idea testing ground.

Jos Ahrens

@Zarthus

Breaker and tester of many things, purveyor of dissenting opinions.

Austin Peterson

@AKPWebDesign

Resident JavaScript-fu practitioner with a penchant for design.

Frontend

Bulma

An awesome CSS framework that is the foundation for all of paste's CSS.

bulma-tooltip

An extension to Bulma that adds CSS-only tooltips.

Bulmaswatch

Themes for Bulma. We use a slightly modified version of "darkly" for our dark theme.

CodeSass

Our very own fork of CodeFlask, designed to work smarter and better.

FontAwesome

A ubiquitous set of icons that you've probably seen before.

highlight.js

The syntax highlighter responsible for all highlighting on paste.

highlightjs-line-numbers.js

An add-on for highlight.js that adds line numbers. We use a slightly modified version.

Twemoji

Twitter's set of emoji that's free for everyone. We use the clipboard one as our favicon!

zxcvbn

A password strength library that's lightweight and powerful.

Backend

ammonia

Sanitises all the nasty HTML provided by our users (in the form of Markdown).

base32

A Rust implementation of base32.

base64

A Rust implementation of base64.

chrono

It does... time. Time stuff. Famously known for not being Crono.

comrak

Parses and processes CommonMark + GFM in order to render your Markdown files.

cookie

Creates and processes delicious cookies for your browser.

csv

CSV parsing library.

diesel

The world's best ORM. It handles all the database work around here.

dotenv

Loads .env files and makes them environment variables. Useful!

failure

Easy error handling in Rust.

git2

Rust bindings to libgit2 that we use for all Git operations.

hashbrown

A SwissTable implementation in Rust. Faster HashMaps!

hex

Encodes and decodes strings of bytes as hexadecimal.

html5ever

Parses HTML5 according to spec. Doesn't use regex to do it.

if_chain

Chains ifs together, for when you really need to just chain together some ifs.

ipnetwork

Looks at IPv6 and IPv4 CIDRs. This is what determines whether you get rate limited.

lazy_static

Lazily-evaluated statics in Rust.

lettre

Sends, creates, examines, modifies, and does anything else you could possibly want to do with emails.

libflate

Rust implementation of DEFLATE and friends.

mime

Support MIME (Media Types) as strong types in Rust.

multipart

A multipart file upload library.

oath

OATH algorithms for two-factor authentication.

percent-encoding

Encodes URLs with neat percent signs.

qrcode

Creates QR codes via an easy API. Used for TFA!

r2d2

Not the droid you're looking for. It's actually a connection pool!

r2d2_redis

Makes redis-rs work with r2d2.

rand

A Rust library for random number generation.

redis

Talks to redis... in Rust.

reqwest

An easy and powerful Rust HTTP Client.

rocket

A web framework for Rust. It powers every single request made to paste.

rust-crypto

A (mostly) pure-Rust implementation of various cryptographic algorithms.

rust-native-tls

Handles native TLS through one abstract API.

serde

A framework for serialising and deserialising data structures in Rust.

serde_json

Serde support for serialising and deserialising JSON.

sha2

SHA-2 hash functions for Rust.

sidekiq

Talks to sidekiq in Rust.

sodiumoxide

Rust bindings to libsodium, which is used for passwords and whatnot.

tera

The templating engine that rendered this very page (and all the others).

toml

Parses TOML files. Gotta load the configuration somehow!

unicase

Compares unicode strings without factoring in casing.

unicode-segmentation

Looks at strings in terms of graphemes and words as defined by the Unicode Standard.

unicode_categories

Classifies characters into categories according to the Unicode Standard.

url

Parses and processes URLs.

uuid

Parses and generates UUIDs, which are definitely not used anywhere in paste. Nope.

xz2

Rust bindings to liblzma.