41 lines
1.9 KiB
XML
41 lines
1.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<herd>haskell</herd>
|
|
<longdescription>
|
|
@persistent@ is a library for type-safe data serialization. It
|
|
has many kinds of backends, such as SQL backends
|
|
(@persistent-mysql@, @persistent-postgresql@,
|
|
@persistent-sqlite@) and NoSQL backends (@persistent-mongoDB@).
|
|
|
|
While @persistent@ is a nice library for storing and retrieving
|
|
records, currently it has a poor interface for SQL backends
|
|
compared to SQL itself. For example, it's extremely hard to do
|
|
a type-safe @JOIN@ on a many-to-one relation, and simply
|
|
impossible to do any other kinds of @JOIN@s (including for the
|
|
very common many-to-many relations). Users have the option of
|
|
writing raw SQL, but that's error prone and not type-checked.
|
|
|
|
@esqueleto@ is a bare bones, type-safe EDSL for SQL queries
|
|
that works with unmodified @persistent@ SQL backends. Its
|
|
language closely resembles SQL, so (a) you don't have to learn
|
|
new concepts, just new syntax, and (b) it's fairly easy to
|
|
predict the generated SQL and optimize it for your backend.
|
|
Most kinds of errors committed when writing SQL are caught as
|
|
compile-time errors---although it is possible to write
|
|
type-checked @esqueleto@ queries that fail at runtime.
|
|
|
|
Currently only @SELECT@s are supported. Not all SQL features
|
|
are available, but most of them can be easily added (especially
|
|
functions), so please open an issue or send a pull request if
|
|
you need anything that is not covered by @esqueleto@ on
|
|
<https://github.com/meteficha/esqueleto/>.
|
|
|
|
The name of this library means \"skeleton\" in Portuguese and
|
|
contains all three SQL letters in the correct order =). It was
|
|
inspired by Scala's Squeryl but created from scratch.
|
|
</longdescription>
|
|
<upstream>
|
|
<remote-id type="github">prowdsponsor/esqueleto</remote-id>
|
|
</upstream>
|
|
</pkgmetadata>
|