Share this project

Done

Share this project

Done
Client for MySQL/MariaDB with Auto-Completion and Syntax Highlighting.

(Not affiliated with Oracle).
Client for MySQL/MariaDB with Auto-Completion and Syntax Highlighting.

(Not affiliated with Oracle).
Client for MySQL/MariaDB with Auto-Completion and Syntax Highlighting. (Not affiliated with Oracle).
161 backers pledged $4,804 to help bring this project to life.

About this project

CLI for MySQL/MariaDB project video thumbnail
Replay with sound
Play with
sound

CLI for MySQL/MariaDB

$4,804

161

THIS PROJECT IS NOT AFFILIATED TO ORACLE.

STRETCH GOAL ($4000)

Tutorial series (video) on how to write your own REPL with auto-completion and syntax highlighting. 

This video tutorial will start from scratch and show you how to build a fully functional REPL for a new data-backend (Cassandra or SQLite). You will be able to build your own CLI tool after going through this tutorial. It will also be useful to add features to the existing cli projects such as pgcli and this one.

ETA: July 2015 (only for backers $50 or above).

ETA: Aug 2015 (All backers).

mysql-cli/mariadb-cli

The goal of this project is to create a MySQL and MariaDB client for the command-line that can do auto-completion and syntax highlighting of SQL statements.

The first five seconds in the video shows how the new features improve productivity with command line queries.

You will never type SHOW TABLES or SHOW COLUMNS anymore. 

The application will be written in Python and the goal is to make is cross-platform compatible. The initial target will be Linux and OS X with possible Windows support.

The software will be released (in July 2015) under the BSD license

The backers will get early access to the app and have the ability to steer the roadmap.

Contributors to pgcli will automatically be given access to mysql-cli repo. If you have submitted a PR to pgcli you will receive an invite to access mysql-cli repo.

Why Should You Fund It?

You will get a much nicer MySQL/MariaDB client with modern features. The auto-completion will help you write queries faster and with ease. It can be used as an exploratory tool when jumping into a new database.

By funding this project you will make it possible for this tool to exist. You will also have the opportunity to help steer the roadmap of the project and become an early adopter and a contributor. 

Kickstarter is critical to and will greatly accelerate the development of this project.

I develop the project on my own time. It takes a lot of time to develop and support the project, the funding will help compensate for the developer time. 

Demo - pgcli

This is a run down of some basic features in pgcli. It is a taste of what is to come in mysql-cli.

Timeline

May 1 - Restart development of mysql-cli.

June 1 - Open up the repo to early bird backers. Basic Feature Set (Keyword completion, successful querying, syntax highlighting).

July 1 - Stable basic features, introduce advanced features such as special commands.

July 20 - Stable set of existing features. Open it up for public.

Features

Here are a few features that are planned for mysql-cli. These screenshots are taken from the pgcli project (the equivalent product for Postgres database). 

Auto-completion of SQL keywords.

Keyword Completion
Keyword Completion

Auto-completion of table names from the current database

Smart Completion - Tables
Smart Completion - Tables

 Auto-completion of column names from the current table.

Smart Completion - Columns
Smart Completion - Columns

Completion of column names associated with an alias.

Alias Support
Alias Support

 Multi-line mode for long statements

Multi-line mode
Multi-line mode

 Syntax-highlighting of SQL statements

Syntax Highlighting
Syntax Highlighting

Target Audience

Programmers, Database Admins, Sys Admins, Command Line Junkies. If you have friends who interact with Databases, forward this project to them.

This project will benefit anyone who interacts with MySQL/MariaDB database, whether novice or expert.

Since it is written in Python, it will be cross-platform compatible (Linux and OS X first and possibly Windows).

Budget - How will the money be used

Engineering Resources: $2500

EC2 instances for testing on Linux: $200

Screencast Software: $100

Logistics & Taxes: $200

Risks and challenges

Software projects are inherently complex to estimate. My current delivery date of July 2015 could get delayed if I run into unexpected delays. My experience in creating 'pgcli' project gives me confidence that I can deliver the product on time.

I have already started working on mysql-cli and it is near the 25% completion state. I will start providing access to the backers as soon as it reaches the 50% mark and start gathering feedback.

Learn about accountability on Kickstarter

FAQ

  • I'm testing this tool against different versions of the database.

    Right now I'm using docker containers to test on different versions of the database. But my dev machine is 4 years old and it struggles a bit once I get 2 images with different versions running.

    So my goal is to get a one or two EC2 instances that I can use as docker work horses which can run multiple containers with different versions.

    Last updated:
  • This is targeted as an alternative to the default mysql client that ships with MySQL or MariaDB. People still use it heavily while connected to a remote machine. This provides them with a nicer alternative to do that.

    Also there are a lots of people who prefer command line over GUI.

    Last updated:
  • I did think about using SQLAlchemy and having the user install the appropriate database adapter (such as sqlite, psycopg2 or pymysql) in order to make it generic. But it makes it hard to do a good job on any of them.

    By making targeted apps, I'm able to fine tune the tool to match each product. For example '\d' in Postgres lists all relations in a database, but '\d' in MySQL sets the delimiter. There is no way to please both community.

    Also having targeted apps, keeps the code base lean and small, making it easy for users to contribute code and add features. This is important for an Open Source project.

    Last updated:
  • It does keyword completions but no table/column completions. The output formatting needs more work. If I open it right now, it'll be pulled in many different directions and I'll be left fielding questions before reaching an MVP.

    The goal is to make the repo available to the kickstarter backers in June at which point the basic feature set will be ready.

    Last updated:

Support this project

  1. Select this reward

    Pledge $1 or more About $1.00

    ★FAN★

    My heartfelt thanks to you.

    You'll get access to mysql-cli 1 week before the public release. You will receive regular updates about the project while it is under development.

    Your name will be listed under http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    15 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  2. Select this reward

    Pledge $5 or more About $5

    ★EARLY BIRD★

    Early access (June 2015) to the mysql-cli Github repo. You can file bug reports, feature requests and send Pull Requests.

    Your name will be listed under http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    28 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  3. Select this reward

    Pledge $10 or more About $10

    ★EARLY BACKER★ (limited)

    Access to the planning board and ability to vote on the features.

    Early access (June 2015) to the mysql-cli Github repo. You can file bug reports, feature requests and send Pull Requests.

    Your name will be listed under http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    Limited 61 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  4. Select this reward

    Pledge $20 or more About $20

    ★BACKER★

    Access to the planning board and ability to vote on the features.

    Early access (June 2015) to the mysql-cli Github repo. You can file bug reports, feature requests and send Pull Requests.

    Your name will be listed under http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    32 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  5. Select this reward

    Pledge $50 or more About $50

    ★SPONSOR★

    Your name in the startup message of mysql-cli.

    Access to the planning board and ability to vote on the features.

    Early access (June 2015) to the mysql-cli Github repo. You can file bug reports, feature requests and send Pull Requests.

    Your name will be listed under http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    18 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  6. Select this reward

    Pledge $100 or more About $100

    ★SILVER SPONSOR★

    Your name and company logo will be displayed prominently in the http://mysqlcli.com/sponsors page as a Silver sponsor.

    Your name in the startup message of mysql-cli.

    Access to the planning board and ability to vote on the features.

    Early access (June 2015) to the mysql-cli Github repo. You can file bug reports, feature requests and send Pull Requests.

    Your name will be listed under Silver sponsors in http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    4 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  7. Select this reward

    Pledge $500 or more About $500

    ★GOLD SPONSOR★

    Your company logo placed at the footer of every page in http://mysqlcli.com until the end of 2016.

    Your name in the startup message of mysql-cli.

    Access to the planning board and ability to vote on the features.

    Early access (June 2015) to the mysql-cli Github repo. You can file bug reports, feature requests and send Pull Requests.

    Your name will be listed under Gold sponsors in http://mysqlcli.com/sponsors

    Less
    Estimated delivery
    Limited 2 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.

Funding period

- (30 days)