The interface can be made generic, but it'd require HKT and potentially
some more work on removing spurious conflicting trait implementation
warnings. It only uses trait objects for query parameters where you
actually need an array of distinct types implementing an interface. I've
also found that generic SQL interfaces are less than useful in the "I can
instantly swap from Postgres to SQLite with a config file toggle" sense
simply because their implementations of SQL (SERIAL vs AUTOINCREMENT, etc)
differ too much for it to work without a ton of pain. If anything, a
generic API would be nice just to push the APIs of different SQL client
libraries closer together.

Someone could absolutely take the interface used by rust-postgres and make
a MySQL/MariaDB driver with it, but that person wouldn't be me :)

Steven Fackler


On Wed, Dec 11, 2013 at 7:15 AM, Gaetan <[email protected]> wrote:

> I agree python dbapi is pretty simple to use due to the dynamic nature of
> types in python.
>
> I like this rust postgre binding, I can't see why it cannot be extended to
> support mysql?
>
> Actually, my main reference is sqlalchemy but it's a step much higher in
> term of abstraction of the DB.
>
> -----
> Gaetan
>
>
>
> 2013/12/11 Corey Richardson <[email protected]>
>
>> Python has the advantage of dynamic typing, and Go runtime type
>> assertions and variadics. Their interfaces probably aren't /too/ good
>> for inspiration, especially Python's.
>>
>> See rust-postgres (https://github.com/sfackler/rust-postgres) for an
>> existing DB binding. I think it's fairly idiomatic and any DB API
>> should draw inspiration from it. It leverages trait objects, though
>> it's unclear that that can be generic. Personally I've never really
>> been a fan of generic SQL APIs. Unless they leverage intense amounts
>> of magic (Entity Framework, SQLAlchemy), I find they end up being
>> crippled (luasql) or fairly uses (python's dbapi).
>>
>> Maybe that's just me.
>>
>> On Wed, Dec 11, 2013 at 9:24 AM, Gaetan <[email protected]> wrote:
>> > I'll be glad volunteering for this task, however I'm new in rust so I
>> may
>> > need to have some mentoring for this...
>> >
>> > I would be inspired by the python interface:
>> > https://pypi.python.org/pypi/MySQL-python/1.2.4
>> >
>> > -----
>> > Gaetan
>> >
>> >
>> >
>> > 2013/12/11 John Mija <[email protected]>
>> >>
>> >> Before of release 1.0, it would be very good if it's added to the
>> package
>> >> standard a generic interface to be implemented by the packages of SQL
>> >> drivers.
>> >>
>> >> As example, see packages "database/sql" and "database/sql/driver" in
>> the
>> >> Go's library:
>> >>
>> >> http://golang.org/pkg/database/
>> >> _______________________________________________
>> >> Rust-dev mailing list
>> >> [email protected]
>> >> https://mail.mozilla.org/listinfo/rust-dev
>> >
>> >
>> >
>> > _______________________________________________
>> > Rust-dev mailing list
>> > [email protected]
>> > https://mail.mozilla.org/listinfo/rust-dev
>> >
>>
>
>
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to