Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

The Real Kickstarter

A mini-Kickstarter application and CLI playground for identifying issues in current Rust ORMs and command-line parsers. Also James told me to make this. Hi James!

See documentation for a high-level library overview.

$ ksr run
> project Sensel_Control_Pad 250000.00
Added project 'Sensel_Control_Pad' with a target goal of $250,000.00.

> back Sally Sensel_Control_Pad 4773718568425957 300
Sally backed project 'Sensel_Control_Pad' for $300.00.

> list Sensel_Control_Pad
-- Sally backed for $300.00
Sensel_Control_Pad needs $249,700.00 more dollars to be successful!

> backer Sally
Sally backed project 'Sensel_Control_Pad' for $300.00
Sally has given $300.00 back to their community. Thanks Sally!


Command-line Interface

A simple CLI is provided for bootstrapping and interacting with a local copy of (the real) Kickstarter.

    ksr run     [<file>]
    ksr project <name> <amount>
    ksr back    <user> <name> <card> <amount>
    ksr list    <name>
    ksr backer  <user>
    ksr listall
    ksr (-h | --help)
    ksr (-v | --version)
    ksr (-b | --build)
    ksr (-s | --sync)

    -h --help      Show this message
    -v --version   Show version
    -s --sync      Sync generated models with db tables
    -b --build     Build tables and models from configured .sql file
    --config=<f>   The .toml configuration file [default: data/config.toml]

    project    Create a new project
    back       Back a project
    list       List all pledges towards a project
    backer     List all pledges that a backer has made
    listall    List all existing projects
    run        Streaming CLI

As a Library

The Kickstarter client library is fully compatible with Cargo, and is available as a git dependency. Just add it to your Cargo.toml:

git = ""

Getting Started


To build this project, you will need Rust 1.0+ and its package manager, Cargo. The easiest way to get the current stable release of Rust and Cargo is using rustup:

$ curl -sSf | sh

This project also uses PostgreSQL for persistent storage. Before running ksr, ensure that you have PostgreSQL setup and running.

$ sudo apt-get install postgresql postgresql-contrib

You can follow this guide to set up your service and user permissions.

Building ksr

Thanks to Cargo, building Rust packages is really easy!

$ git clone && cd kick-rs
$ cargo build [--release]

The ksr binary executable will be built under target/debug or target/release.

Database Setup

$ createdb <db_name> (default: kickstarter)
$ cp data/sample-config.toml data/config.toml

You'll need to change the connection string in config.toml to point to your database.

uri = "postgres://<user>:<pass>@<ip>:<port>/kickstarter"

Then build or rebuild the schema.

$ ksr --build

This will bootstrap the database and regenerate the models in src/db. Pretty cool!


The integration tests rely on a live test database defined in tests/data. Make sure that the provided database exists and that the Rust tests are running on a single-thread before executing cargo test.

$ createdb ksr-test
$ cp tests/data/sample-config.toml tests/data/config.toml
$ cargo test

Don't forget to modify config.toml to provide database credentials!


Kickstarter in mini-Rust form, using extremely young and scruffy ORMs.






No releases published


No packages published