Hi

In the last month I spent my free time on creating a typed ORM library for 
Go.

The motivation was that the currently most popular ORM library for Go: GORM 
<http://jinzhu.me/gorm/>, lacks type safety, has poor performance and, to 
my opinion, has unclear API.

Don't get me wrong, GORM is great, but I think that the go community can 
have something more Go-ish.

So what was I thinking about?... About this: https://github.com/posener/orm

What is it? A command line that generates typed ORM code for a specific 
struct.

The generated code does not use any interface{}, everything is typed! From 
function arguments for insert operations, to arguments that are passed to a 
where statement, and to returned values from a query operation. No more 
guessing, no more run time failures.

The current implementations supports:

* Two database drivers: mysql (tested with mysql 5.6), and sqlite3

* Relatively simple API.

* Create table, simple migrations (add column, add foreign key column)

* Tables relations: one to one, one to many.

* Query: select columns, filter with where, group by, order by, joins (by 
primary key(s)), rows count.

* Insert:  a row. returned value is typed and has the primary key(s) filled.

* Delete: according to a where statement.

* Update: only to a specific value.

Simple benchmarks are available, showing performance similar to raw SQL 
queries performance.

This is a big task, and to my opinion, it is an important one.

I would love to get help! and this project is on it's first stages, 
everything is open!

* Add support for other databases.

* Add functionalities.

* Suggest ideas.

* Suggest better design.

* Suggest better API.

* Wider auto migration options.

* Support migration scripts generation.

* Improve documentation, add examples, improve wiki.

* Add tests.

Please visit https://github.com/posener/orm, star, and contribute.

And please, your opinion about it is appreciated!

Cheers,

Eyal

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to