Skip to content

Latest commit

 

History

History
68 lines (46 loc) · 2.13 KB

README.md

File metadata and controls

68 lines (46 loc) · 2.13 KB

bin

a paste bin.

A paste bin that's actually minimalist. No database requirement, no commenting functionality, no self-destructing or time bomb messages and no social media integration—just an application to quickly send snippets of text to people.

bin is written in Rust in around 300 lines of code. It's fast, it's simple, there's code highlighting and you can ⌘+A without going to the 'plain' page. It's revolutionary in the paste bin industry, disrupting markets and pushing boundaries never seen before.

so how do you get bin?

Download the latest version from the releases page, extract it and run the ./bin executable. You can also compile it from source using Cargo if you swing that way:

# nix-shell provides an environment with rust/cargo installed
$ nix-shell

[nix-shell:~/Code/bin]$ cargo build --release
   Compiling bin v1.0.0 (/Users/jordanjd/Code/bin)
    Finished release [optimized] target(s) in 3.61s

[nix-shell:~/Code/bin]$ ./target/release/bin
    ...
how do you run it?
$ ./bin
funny, what settings are there?
$ ./bin

Usage: bin [<bind_addr>] [--buffer-size <buffer-size>] [--max-paste-size <max-paste-size>]

a pastebin.

Positional Arguments:
  bind_addr         socket address to bind to (default: 127.0.0.1:8820)

Options:
  --buffer-size     maximum amount of pastes to store before rotating (default:
                    1000)
  --max-paste-size  maximum paste size in bytes (default. 32kB)
  --help            display usage information
is there curl support?
$ curl -X PUT --data 'hello world' https://bin.gy
https://bin.gy/cateettary
$ curl https://bin.gy/cateettary
hello world
how does syntax highlighting work?

To get syntax highlighting you need to add the file extension at the end of your paste URL.

TODO:
  • Allow option to specify key name in POST request.
  • Serialize LinkedHashMap to a file and read from that file when application is started
  • navigation: easily goto Pastes path and from Pastes goto New Paste
  • in pastes path. User should be able to delete a paste