Vaquita : a native Go driver for MariaDB/MySQL database server

669 views
Skip to first unread message

Nirbhay Choubey

unread,
Oct 18, 2015, 2:32:58 PM10/18/15
to golan...@googlegroups.com
Gophers,

Here's yet another native Go driver for MariaDB/MySQL database server.
Its licensed under LGPL v2.1 and broadly supports the following features :

* Driver for database/sql
* Binlog API to access replication binary logs
* SSL support
* Compression support
* Support for Prepared Statements (PS)
* Extended error handling support


!! WARNING !! Its a work in progress, so not ready for production use.

Cheers!

-- Nirbhay

Konstantin Khomoutov

unread,
Oct 19, 2015, 10:59:20 AM10/19/15
to Nirbhay Choubey, golan...@googlegroups.com
On Sun, 18 Oct 2015 14:32:33 -0400
Nirbhay Choubey <nirbhay...@gmail.com> wrote:

> Here's yet another native Go driver for MariaDB/MySQL database server.
> Its licensed under LGPL v2.1

That may have really been your intention but most Go code these days
uses static linking and this appears to be a gray area for LGPL (or
PITA for the developers). Since some projects explicitly "extend"
their LGPL licensing terms with the static linking permission (for
instance, [1]), I'm afraid your code as currently licensed is barely
useful for those not writing F/OSS code. Googling for LGPL+static
+linking might provide more material to ponder on.

> and broadly supports the following
> features :
>
> * Driver for database/sql
> * Binlog API to access replication binary logs
> * SSL support
> * Compression support
> * Support for Prepared Statements (PS)
> * Extended error handling support

The arguably most used pure Go MySQL driver [2] appears to already have
all these features, so can you elaborate on your desire to provide yet
another MySQL driver? (I mean, healthy competition is OK but mostly on
early stages of that competition. By now we appear to have robust
drivers and I, personally, would prefer them to be refined rather than
to see yet another implementation with potentially unclear fate.)

1. http://zeromq.org/area:licensing
2. https://github.com/go-sql-driver/mysql

Nirbhay Choubey

unread,
Nov 4, 2015, 1:18:13 PM11/4/15
to Konstantin Khomoutov, golan...@googlegroups.com
Hi Konstantin!

On Mon, Oct 19, 2015 at 10:58 AM, Konstantin Khomoutov <flat...@users.sourceforge.net> wrote:
On Sun, 18 Oct 2015 14:32:33 -0400
Nirbhay Choubey <nirbhay...@gmail.com> wrote:

> Here's yet another native Go driver for MariaDB/MySQL database server.
> Its licensed under LGPL v2.1

That may have really been your intention but most Go code these days
uses static linking and this appears to be a gray area for LGPL (or
PITA for the developers).  Since some projects explicitly "extend"
their LGPL licensing terms with the static linking permission (for
instance, [1]), I'm afraid your code as currently licensed is barely
useful for those not writing F/OSS code.  Googling for LGPL+static
+linking might provide more material to ponder on.

Thanks for the pointers. Its something that I wasn't aware. I will switch
the license to MIT.
 

> and broadly supports the following
> features :
>
> * Driver for database/sql
> * Binlog API to access replication binary logs
> * SSL support
> * Compression support
> * Support for Prepared Statements (PS)
> * Extended error handling support

The arguably most used pure Go MySQL driver [2] appears to already have
all these features, so can you elaborate on your desire to provide yet
another MySQL driver?

I started it as a hobby project, more to learn Go, but now it implements almost entire
communication protocol including APIs to read/parse replication streams.
 
(I mean, healthy competition is OK but mostly on
early stages of that competition.  By now we appear to have robust
drivers and I, personally, would prefer them to be refined rather than
to see yet another implementation with potentially unclear fate.)

1. http://zeromq.org/area:licensing
2. https://github.com/go-sql-driver/mysql

I agree.

Best,
Nirbhay


Reply all
Reply to author
Forward
0 new messages