connection. It also provides higher-level functions which allow you to
avoid direct usage of enumerators.
WWW: http://www.yesodweb.com/book/http-conduit
Obtained from: FreeBSD Haskell
based on the datatypes found in the xml-types package. This package is
broken up into the following modules:
* Text.XML: DOM-based parsing and rendering. This is the most commonly
used module.
* Text.XML.Cursor: A wrapper around Text.XML which allows bidirectional
traversing of the DOM, similar to XPath.
* Text.XML.Unresolved: A slight modification to Text.XML which does not
require all entities to be resolved at parsing. The datatypes are
slightly more complicated here, and therefore this module is only
recommended when you need to deal directly with raw entities.
* Text.XML.Stream.Parse: Streaming parser, including some streaming
parser combinators.
* Text.XML.Stream.Render: Streaming renderer.
WWW: http://github.com/snoyberg/xml
Obtained from: FreeBSD Haskell
Tango math library; approximate and exact equality comparisons for general
types.
WWW: http://github.com/patperry/hs-ieee754
Obtained from: FreeBSD Haskell
like having first-class access to the storage space behind IORefs. The
data structure is analogous to a bank vault, where you can access different
bank boxes with different keys; hence the name. Also provided is a "locker"
type, representing a store for a single element.
WWW: https://github.com/HeinrichApfelmus/vault
Obtained from: FreeBSD Haskell
library are quite limited. The unixutils package contains some good ones,
but they aren't portable to Windows. This library just repackages the
Cabal implementations of its own temporary file and folder functions so
that you can use them without linking against Cabal or depending on it
being installed.
WWW: http://www.github.com/batterseapower/temporary
Obtained from: FreeBSD Haskell
an alternative to enumerators/iterators, hoping to address the same
issues with different trade-offs based on real-world experience with
enumerators.
WWW: http://github.com/snoyberg/conduit
Obtained from: FreeBSD Haskell
suitable for low-level shared-memory synchronization. The implementation
is using GCC's builtin atomic operations (available in GCC >= 4) in C
wrappers called through the FFI.
WWW: http://hackage.haskell.org/package/bits-atomic
Obtained from: FreeBSD Haskell
provided by the 'parallel' package. A Par monad allows the simple
description of parallel computations, and can be used to add parallelism
to pure Haskell code. The basic API is straightforward: a Par monad
supports forking and simple communication in terms of IVars. This module
is an interface module only. It provides a number of type clasess, but
not an implementation. The type classes separate different levels of Par
functionality.
WWW: https://github.com/simonmar/monad-par
Obtained from: FreeBSD Haskell
There exists a feature space for queues that extends between:
* simple, single-ended, non-concurrent, bounded queues
* double-ended, threadsafe, growable queues
... with important points inbetween (such as the queues used for
work-stealing). This package includes an interface for Deques that
allows the programmer to use a single API for all of the above, while
using the type-system to select an efficient implementation given the
requirements (using type families). This package also includes a simple
reference implementation based on 'IORef' and "Data.Sequence".
WWW: http://hackage.haskell.org/package/abstract-deque
Obtained from: FreeBSD Haskell
exposed in Data.IORef. This package fills that gap until such a time as
Data.IORef obsoletes it. Further, in addition to exposing native Haskell
CAS operations, this package contains "mockups" that imititate the same
functionality using either atomicModifyIORef and unsafe pointer equality
(in Data.CAS.Fake) or using foreign functions (Data.CAS.Foreign).
These alternatives are useful for debugging. Note that the foreign option
does not operate on IORefs and so is directly interchangeable with `Data.CAS`
and `Data.CAS.Fake` only if the interface in `Data.CAS.Class` is used.
WWW: http://hackage.haskell.org/package/IORefCAS
Obtained from: FreeBSD Haskell
generated by the Glasgow Haskell Compiler (GHC).
The ThreadScope program allows us to debug the parallel performance of
Haskell programs. Using Threadscope we can check to see that work is
well balanced across the available processors and spot performance
issues relating to garbage collection or poor load balancing.
WWW: http://hackage.haskell.org/package/threadscope
Obtained from: FreeBSD Haskell
on top of wxWidgets - a comprehensive C++ library that is portable
across all major GUI platforms; including GTK, Windows, X11, and MacOS
X. This version works with wxWidgets 2.8 and 2.9.
WWW: http://haskell.org/haskellwiki/WxHaskell
Obtained from: FreeBSD Haskell
on top of wxWidgets, a comprehensive C++ library that is portable across
all major GUI platforms, including GTK, Windows, X11, and MacOS X. This
version works with wxWidgets 2.8 only. Distributed under the WXWINDOWS
LIBRARY LICENSE. Please see LICENSE file, but note that this is
essentially LGPL with an exception allowing binary distribution of
proprietary software. This is the same license as wxWidgets itself
uses.
WWW: http://haskell.org/haskellwiki/WxHaskell
Obtained from: FreeBSD Haskell
on top of wxWidgets, a comprehensive C++ library that is portable across
all major GUI platforms, including GTK, Windows, X11, and MacOS X. This
version works with wxWidgets 2.8 only.
WWW: http://haskell.org/haskellwiki/WxHaskell
Obtained from: FreeBSD Haskell
generate RSA and DSA keys, read and write PEM files, generate message
digests, sign and verify messages, encrypt and decrypt messages. It has
also some capabilities of creating SSL clients and servers.
WWW: https://github.com/phonohawk/HsOpenSSL
Obtained from: FreeBSD Haskell
It also affords space efficient code, highly concurrent loads, and
portability to many deployment backends (via the wai package), from CGI
to stand-alone serving. Yesod also focuses on developer productivity.
Yesod integrates well with tools for all your basic web development (wai,
persistent, and shakespeare/hamlet).
WWW: http://www.yesodweb.com/
Obtained from: FreeBSD Haskell
application that have strong compile-time guarantees of correctness. It
also affords space efficient code and portability to many deployment
backends, from CGI to stand-alone serving.
WWW: http://www.yesodweb.com/
Obtained from: FreeBSD Haskell
simple variable interpolation. Shakespeare templates can be used inline
with a quasi-quoter or in an external file. Shakespeare interpolates
variables according to the type being inserted. In this case, the
variable type needs a ToText instance.
WWW: http://www.yesodweb.com/book/templates
Obtained from: FreeBSD Haskell
simple variable interpolation. Shakespeare templates can be used inline
with a quasi-quoter or in an external file. Shakespeare interpolates
variables according to the type being inserted. In this case, the
variable type needs a ToJavascript instance.
There is also shakespeare-coffeescript for coffeescript templates.
Coffescript is a language that compiles down to javascript. It expects
a coffeescript compiler in your path, and variable should be a ToCoffee
instance.
WWW: http://www.yesodweb.com/book/templates
Obtained from: FreeBSD Haskell
translated content. It has a simple syntax for translators, while
allowing the ful power of Haskell for applying complex grammar rules.
WWW: http://www.yesodweb.com/book/i18n
Obtained from: FreeBSD Haskell
simple variable interpolation. Shakespeare templates can be used inline
with a quasi-quoter or in an external file. Shakespeare interpolates
variables according to the type being inserted. In this case, the
variable type needs a ToCss instance.
This package contains 2 CSS template languages. The Cassius language
uses whitespace to avoid the need for closing brackets and semi-colons.
Lucius does not care about whitespace and is a strict superset of CSS.
There are also some significant conveniences added for CSS.
WWW: http://www.yesodweb.com/book/templates
Obtained from: FreeBSD Haskell
messages, functions for automatically composing these into bytestrings,
and the ability to send bytestrings via the sendmail executable. You
can also use any other library you wish to send via different methods,
eg directly to SMTP.
WWW: http://github.com/snoyberg/mime-mail
Obtained from: FreeBSD Haskell
via Quasi-Quoting, and generating extremely efficient output code. The
syntax is white-space sensitive, and it helps you avoid cross-site
scripting issues and 404 errors.
WWW: http://www.yesodweb.com/book/templates
Obtained from: FreeBSD Haskell
simple variable interpolation. Shakespeare templates can be used inline
with a quasi-quoter or in an external file. Shakespeare interpolates
variables according to the type being inserted.
WWW: http://www.yesodweb.com/book/templates
Obtained from: FreeBSD Haskell
Parsing and emitting is handled by the yaml package, which in turn uses
the libyaml C library.
WWW: http://github.com/snoyberg/data-object-yaml
Obtained from: FreeBSD Haskell
This package includes the full libyaml C library version 0.1.2 by Kirill
Simonov in the package so you don't need to worry about any non-Haskell
dependencies.
WWW: http://github.com/snoyberg/yaml/
Obtained from: FreeBSD Haskell
providing a representation in a separate repository, other libraries can
share a single representation of these structures.
WWW: http://github.com/snoyberg/data-object/tree/master
Obtained from: FreeBSD Haskell
distinguish between conversions which are guaranteed to succeed and
those which might fail. It uses the attempt package, which in turn uses
the failure package, so that this package is fully compatible with the
failure framework.
This package currently contains all of the typeclasses and instances for
convertible. However, as these features are ported to the convertible
package, this package will be left with only the instances for
converting to and from text types (String, ByteString (lazy and strict)
and Text (lazy and strict).
Be aware that conversions to and from bytestrings assume UTF-8 encoding.
If a different encoding is desired, you can use a newtype wrapper and
declare an instance of ConvertAttempt or ConvertSuccess on it.
WWW: http://github.com/snoyberg/convertible/tree/text
Obtained from: FreeBSD Haskell
based on the datatypes found in the xml-types package. This package is
broken up into the following modules:
* Text.XML: DOM-based parsing and rendering. This is the most commonly
used module.
* Text.XML.Cursor: A wrapper around Text.XML which allows bidirectional
traversing of the DOM, similar to XPath.
* Text.XML.Unresolved: A slight modification to Text.XML which does not
require all entities to be resolved at parsing. The datatypes are
slightly more complicated here, and therefore this module is only
recommended when you need to deal directly with raw entities.
* Text.XML.Stream.Parse: Streaming parser, including some streaming
parser combinators.
* Text.XML.Stream.Render: Streaming renderer.
WWW: http://github.com/snoyberg/xml
Obtained from: FreeBSD Haskell
connection. It also provides higher-level functions which allow you to
avoid direct usage of enumerators.
WWW: http://github.com/snoyberg/http-enumerator
Obtained from: FreeBSD Haskell
client.
This provides a high-level implementation of a sensitive security
protocol, eliminating a common set of security issues through the use of
the advanced type system, high level constructions and common Haskell
features.
Currently implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, with
only RSA supported for Key Exchange.
WWW: http://github.com/vincenthz/hs-tls
Obtained from: FreeBSD Haskell
and unencrypted private key are supported, but will include PGP
certificate and pkcs8 private keys.
WWW: http://github.com/vincenthz/hs-certificate
Obtained from: FreeBSD Haskell
arbitrarily-sized ByteStrings. While the implementations work, they are
not necessarily the fastest ones on the planet. Particularly key
generation. The algorithms included are based of RFC 3447, or the
Public-Key Cryptography Standard for RSA, version 2.1 (a.k.a, PKCS#1
v2.1).
WWW: http://hackage.haskell.org/package/RSA
Obtained from: FreeBSD Haskell
and uploaded files can be modified either directly via the VCS's
command-line tools or through the wiki's web interface. Pandoc is used
for markup processing, so pages may be written in (extended) markdown,
reStructuredText, LaTeX, HTML, or literate Haskell, and exported in ten
different formats, including LaTeX, ConTeXt, DocBook, RTF, OpenOffice
ODT, and MediaWiki markup.
Notable features include:
* plugins: dynamically loaded page transformations written in Haskell.
* conversion of TeX math to MathML for display in web browsers.
* syntax highlighting of source code files and code snippets.
* Atom feeds (site-wide and per-page).
* a library, Network.Gitit, that makes it simple to include a gitit
wiki in any happstack application.
WWW: http://gitit.net/
Obtained from: FreeBSD Haskell
file store, and modules that instatiate this interface. Currently Git,
Darcs, and Mercurial modules are provided, and other VCSs or databases
could be added.
WWW: http://johnmacfarlane.net/repos/filestore
Obtained from: FreeBSD Haskell
ConfigFile module works with configuration files in a standard format
that is easy for the user to edit, easy for the programmer to work with,
yet remains powerful and flexible. It is inspired by, and compatible
with, Python's ConfigParser module. It uses files that resemble Windows
.INI-style files, but with numerous improvements.
ConfigFile provides simple calls to both read and write config files.
It is possible to make a config file parsable by this module, the Unix
shell, and make.
WWW: http://software.complete.org/configfile
Obtained from: FreeBSD Haskell
where it left off. Happstack-State spares you the need to deal with all
the marshalling, consistency, and configuration headache that you would
have if you used an external DBMS for this purpose. Its component model
makes it easy to compose big applications from smaller reliable parts.
Use event subscription to trigger IO actions and support comet-style or
irc-bot applications.
WWW: http://happstack.com/
Obtained from: FreeBSD Haskell
routing requests, handling query parameters, generating responses,
working with cookies, serving files, and more.
WWW: http://happstack.com/
Obtained from: FreeBSD Haskell
easy to use template-haskell function. Spare yourself the need to
write, run, and maintain code that marshalls your data to/from an
external relational database just for efficient queries. The
happstack-ixset relies on generics and TH to spare you the boilerplate
normally required for such tasks.
WWW: http://happstack.com/
Obtained from: FreeBSD Haskell
* Deriving instances for your datatypes.
* Producing default values of Haskell datatypes.
* Normalizing values of Haskell datatypes.
* Marshalling Haskell values to and from XML.
* Marshalling Haskell values to and from HTML forms.
WWW: http://happstack.com/
Obtained from: FreeBSD Haskell
MonadBase into which generic control operations such as catch can be
lifted from IO or any other base monad. Instances are based on monad
transformers in MonadTransControl, which includes all standard monad
transformers in the transformers library except ContT.
WWW: https://github.com/basvandijk/monad-control/
Obtained from: FreeBSD Haskell
and types in the base package. All symbols are documented with their
actual definition and information regarding their Unicode code point.
They should be completely interchangeable with their definitions.
For further Unicode goodness you can enable the UnicodeSyntax language
extension. This extension enables Unicode characters to be used to
stand for certain ASCII character sequences.
WWW: http://haskell.org/haskellwiki/Unicode-symbols
Obtained from: FreeBSD Haskell
GHC in the ports tree has been updated to version 7.0.4 and the port revision
for all the Haskell ports without version changes are bumped. Other per-port
updates are coming soon.
This update also incorporates some improvements for bsd.cabal.mk that makes
working with Haskell ports even easier.
Thanks ashish@ for the help!
Obtained from: FreeBSD Haskell
package uses bindings to the optimized C implementation of Skein. There
is a high-level interface provided to some of the Skein use cases, and a
low-level interface when Skein has to be used in a different way.
Currently Skein is supported as cryptographic hash function as Skein as
a message authentication code (Skein-MAC).
[1] http://www.skein-hash.info/
WWW: http://patch-tag.com/r/felipe/skein
Obtained from: FreeBSD Haskell
slow hash function. This library uses PBKDF1-SHA256, and handles all the
details. It uses the cryptohash package for speed; if you need a pure
Haskell library, pwstore-purehaskell has the exact same API, but uses
only pure Haskell. It is about 25 times slower than this package, but
still quite usable.
WWW: https://github.com/PeterScott/pwstore
Obtained from: FreeBSD Haskell
(urandom on Linux, CryptAPI on Windows, patches welcome). Users looking
for cryptographically strong (number-theoretically sound) PRNGs should
see the DRBG package too!
WWW: http://trac.haskell.org/crypto-api/wiki
Obtained from: FreeBSD Haskell
pure APIs, with performance close to the fastest implementations available
in others languages.
The implementations are made in C with a haskell FFI wrapper that hide the
C implementation.
WWW: http://github.com/vincenthz/hs-cryptohash
Obtained from: FreeBSD Haskell
RNG, property tests and known-answer tests (KATs) for common algorithms, and a
basic benchmark infrastructure. Maintainers of hash and cipher implementations
are encouraged to add instances for the classes defined in Crypto.Classes.
Crypto users are similarly encouraged to use the interfaces defined in the
Classes module. Any concepts or functions of general use to more than one
cryptographic algorithm (ex: padding) is within scope of this package.
WWW: http://trac.haskell.org/crypto-api/wiki
Obtained from: FreeBSD Haskell
files from an attribute grammar specification.
It is a preprocessor for Haskell which makes it easy to write catamorphisms
(that is, functions that do to any datatype what foldr does to lists).
You can define tree walks using the intuitive concepts of inherited and
synthesized attributes, while keeping the full expressive power of Haskell.
WWW: http://www.cs.uu.nl/wiki/HUT/AttributeGrammarSystem
Obtained from: FreeBSD Haskell
in the ST monad, as well as a type class abstracting their common operations, and
a set of wrappers to use the hash tables in the IO monad.
WWW: http://github.com/gregorycollins/hashtables
Obtained from: FreeBSD Haskell
Features include:
* Automatic, dynamic reloading in response to modifications to configuration
files.
* A simple, but flexible, configuration language, supporting several of
the most commonly needed types of data, along with interpolation of
strings from the configuration or the system environment (e.g.
$(HOME)).
* Subscription-based notification of changes to configuration properties.
* An import directive allows the configuration of a complex application
to be split across several smaller files, or common configuration data
to be shared across several applications.
WWW: http://github.com/mailrank/configurator
Obtained from: FreeBSD Haskell
RFC 4180, "The common Format and MIME Type for Comma-Separated Values
(CSV) Files". This format is used, among many other things, as a lingua
franca for spreadsheets, and for certain web services.
WWW: http://hackage.haskell.org/package/csv
PR: ports/159689
Submitted by: Kaspars Bankovskis <kaspars@bankovskis.lv>
probably caused by an rtld(1) bug in the base system that may not
affect everybody, though.
For affected systems: watch out for the upcoming rtld(1) fix (by
Kostik Belousov) to be committed soon.
provided by the parallel package. The Par monad allows the simple
description of parallel computations, and can be used to add parallelism
to pure Haskell code. The basic API is straightforward: the monad
supports forking and simple communication in terms of IVars. The library
comes with an efficient work-stealing implementation, but the internals
are also exposed so that you can build your own scheduler if necessary.
WWW: http://github.com/simonmar/monad-par
Obtained from: FreeBSD Haskell
performance. (A note on naming: in Greek mythology, Aeson was the
father of Jason.)
WWW: http://github.com/mailrank/aeson
Obtained from: FreeBSD Haskell
optimized for performance critical use, both in terms of large data
quantities and high speed.
The declared cost of each operation is either worst-case or amortized,
but remains valid even if structures are shared.
WWW: http://github.com/tibbe/unordered-containers/
Obtained from: FreeBSD Haskell
precision floating point and text. This library is implemented as
bindings to the C++ double-conversion library written by Florian Loitsch
at Google: http://code.google.com/p/double-conversion/.
The Text versions of these functions are about 30 times faster than the
default show implementation for the Double type. The ByteString versions
are slower than the Text versions; roughly half the speed. (This seems
to be due to the cost of allocating ByteString values via malloc.)
As a final note, be aware that the bytestring-show package is about 50%
slower than simply using show.
WWW: http://github.com/mailrank/double-conversion
Obtained from: FreeBSD Haskell
semigroupoids. A Semigroupoid is a Category without the requirement of
identity arrows for every object in the category.
WWW: http://github.com/ekmett/semigroupoids/
Obtained from: FreeBSD Haskell