ANNOUNCE: Galois web libraries for Haskell released

Galois, Inc. is pleased to announce the open source release of a suite of web programming libraries for Haskell! The following libraries are available, providing support for a wide range of Haskell web programming scenarios: * json JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. This library provides a validating parser and pretty printer for converting between Haskell values and JSON. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/json * xml A simple, lightweight XML parser/generator. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xml * utf8-string A UTF8 layer for IO and Strings. The utf8-string package provides operations for encoding UTF8 strings to Word8 lists and back, and for reading and writing UTF8 without truncation. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/utf8-string * selenium Haskell bindings to communicate with a Selenium Remote Control server. This package makes it possible to use Haskell to write test scripts that exercise web applications through a web browser. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/selenium * curl libcurl is a client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more! This package provides a Haskell binding to libcurl. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl * sqlite Haskell binding to sqlite3 http://sqlite.org/, a light, fast database. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sqlite * feed Interfacing with RSS (v 0.9x, 2.x, 1.0) and Atom feeds http://hackage.haskell.org/cgi-bin/hackage-scripts/package/feed * mime Haskell support for working with MIME types. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mime Together these fill in a big chunk of the web programming stack for Haskell. Get the code! You can find all the cabalised packages on hackage.haskell.org. About: Galois http://galois.com researches, designs and develops high assurance technologies for security-critical systems, networks and applications. We use Haskell as a primary development tool for producing robust components for a diverse range of clients. Web-based technologies are increasingly important in this area, and we believe Haskell has a key role to play in the production of reliable, secure web software. The culture of correctness Haskell encourages is ideally suited to web programming, where issues of security, authentication, privacy and protection of resources abound. In particular, Haskell's type system makes possible strong static guarantees about access to resources, critical to building reliable web applications. We hope that the release of this suite of libraries to the community will push further the adoption of Haskell in the domain of web programming. This release brought to you by: Iavor Diatchki Trevor Elliott Sigbjorn Finne Andy Gill Eric Mertens Isaac Potoczny-Jones Don Stewart Aaron Tomb

On Mon April 21 2008 1:11:19 pm Don Stewart wrote:
Galois, Inc. is pleased to announce the open source release of a suite of web programming libraries for Haskell!
Lots of cool stuff here! A few questions:
* xml A simple, lightweight XML parser/generator.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xml
Can you describe how this compares to HaXml? Were there deficiencies in HaXml?
* sqlite Haskell binding to sqlite3 http://sqlite.org/, a light, fast database.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sqlite
Similar questions here regarding HDBC. Did HDBC (and HDBC-sqlite3) not address some need?
* feed Interfacing with RSS (v 0.9x, 2.x, 1.0) and Atom feeds
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/feed
Sweet. Might have to refactor hpodder to use this.
* mime Haskell support for working with MIME types.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mime
FWIW, I have some similar but slightly different functions in MissingH. http://software.complete.org/static/missingh/doc//MissingH/Data-MIME-Types.h... hsemail and WASH both also have some stuff in this area. Probably not as nice as yours though. -- John

jgoerzen:
On Mon April 21 2008 1:11:19 pm Don Stewart wrote:
Galois, Inc. is pleased to announce the open source release of a suite of web programming libraries for Haskell!
Lots of cool stuff here! A few questions:
* xml A simple, lightweight XML parser/generator.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xml
Can you describe how this compares to HaXml? Were there deficiencies in HaXml?
Much smaller, fewer dependencies. I think of it as the "tagsoup" of xml parsers.
* sqlite Haskell binding to sqlite3 http://sqlite.org/, a light, fast database.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sqlite
Similar questions here regarding HDBC. Did HDBC (and HDBC-sqlite3) not address some need?
Yes, we needed full, low-level access to sqlite for some unusual use cases. For high level stuff, HDBC and Takusen are nicer.
* feed Interfacing with RSS (v 0.9x, 2.x, 1.0) and Atom feeds
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/feed
Sweet. Might have to refactor hpodder to use this.
* mime Haskell support for working with MIME types.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mime
FWIW, I have some similar but slightly different functions in MissingH.
http://software.complete.org/static/missingh/doc//MissingH/Data-MIME-Types.h...
hsemail and WASH both also have some stuff in this area. Probably not as nice as yours though.
We should probably bundle up a bunch of the small mime libs into a single package at some point. -- Don

On Tue April 22 2008 12:20:34 pm Don Stewart wrote:
Yes, we needed full, low-level access to sqlite for some unusual use cases. For high level stuff, HDBC and Takusen are nicer.
Can you elaborate on these use cases? I would like to either add support for them to HDBC-sqlite3, or perhaps make HDBC-sqlite3 a wrapper around your library. -- John

jgoerzen:
On Tue April 22 2008 12:20:34 pm Don Stewart wrote:
Yes, we needed full, low-level access to sqlite for some unusual use cases. For high level stuff, HDBC and Takusen are nicer.
Can you elaborate on these use cases? I would like to either add support for them to HDBC-sqlite3, or perhaps make HDBC-sqlite3 a wrapper around your library.
Strange hardware. So we needed to be able to monkey around somewhat. It might make sense to wrap our sqlite3 binding with HDBC-sqlite3 though, so you don't need to maintain your own sqlite binding. -- Don
participants (2)
-
Don Stewart
-
John Goerzen