Utility library [Haskell]
It's a collection of Haskell-related utilities. It is an extension of my earlier work developing MissingLib for OCaml.
Powerful Logging Framework for Haskell This framework provides a system of hierarchical loggers and modular handlers permitting fine-grained logging with a great deal of control and yet a simple and fast interface. It's based on log4j for Java and logging for Python.
Also included is a native-Haskell Syslog client.
Versatile modules to simplify everyday tasks:
IO utilities make it easier to work with line-based text files and binary files
IO object virtualization so you can use one set of code to work on files of many different types
Filesystem virtualization so you can access various items with the same ease as your system's filesystem
Network utilities to streamline connections
List utilities including association list tools, list splitting, truncation, and delimiter joining
String utilities including removal of leading or trailing whitespace, joining, splitting, and truncation
Other utilities for threads, parsers, filenames, etc.
Printf utilities for formatting strings
GZip decompression
Hundreds of unit tests to verify proper functionality
DBM module abstraction
The following modules are are provided at this time, and more are likely to follow:
MissingH.AnyDBM * Generic DBM-like database infrastructure
MissingH.AnyDBM. * Use a Map in the AnyDBM interface MapDBM
MissingH.AnyDBM. * Simple persistent mapping storage StringDBM
MissingH.Bits * Obtain individual bytes from a bitfield
MissingH.Cmd * Trap errors during calls to external programs
MissingH.Checksum.* * Utilities for calculating checksums over strings
MissingH.Compression.* * Compression/decompression algorithms
MissingH.Compression. * The Inflate algorithm from unzip and Inflate gunzip
MissingH.ConfigParser * Configuration file parser * Interpolation supported * Compatible with Python and OCaml ConfigParsers
MissingH.Daemon * Support for detaching from a terminal
MissingH.Debian * Compare two Debian version numbers [ does not require Debian to compile ]
MissingH.Debian. * Parse debian/control files or output from ControlParser various Debian commands that use the same format [ does not require Debian to compile run ]
MissingH.Either * Utilities for the Either type/Error monad
MissingH.Email.Parser * Parse a flat string into component parts * Walk through the components of a message
MissingH.Email.Sendmail * Send a message via a locally-installed Sendmail program
MisssingH.FileArchive. * Support for analyzing and extracting GZip GZip archives
MissingH.Hsemail * E-mail parsers
MissingH.HUnit * Utilities for writing HUnit unit tests
MissingH.IO * Copying data between files or handles * Lazy operations on line input
MissingH.IO.Binary * Binary I/O with Haskell Strings or [Word8] * Lazy operations on binary blocks * Binary file copy
MissingH.IO.HVFS * Haskell Virtual File System * Lets you emulate real filesystems and work with multiple filesystems
MissingH.IO.StatCompat * Utilities for simulating stat(2) structures on home-grown filesystems or Windows
MissingH.IO.WindowsCompat * Provides POSIX-like functions on Windows
MissingH.List * Association list manipulation * List splitting and delimiter joining * Truncation
MissingH.Logging * Base logging types
MissingH.Logging.Handler * Base handler types
MissingH.Logging. * Logging to a stream Handler.Simple * Logging to a file
MissingH.Logging. * Logging to local or remote syslog Handler.Syslog * No C library implementation required
MissingH.Logging.Logger * Primary user interface to logging * Documentation for the logging system
MissingH.Map * Flip a Map and other utilities
MissingH.Maybe * forceMaybe utility function
MissingH.MIMETypes * Determine the MIME type of a file * Guess an extension based on MIME type
MissingH.Network * Establish TCP connections easily * Trap SIGPIPE to prevent odd crashes
MissingH.Network. * Versatile FTP client module FTP.Client * Full support for uploads and downloads * Passive or standard mode * Lazy uploads and downloads * Also provides low-level interface to issue advanced server commands
MissingH.Network. * Parse FTP protocol replies FTP.Parser
MissingH.Parsec * Invert the sense of a parser
MissingH.Path * Split apart filename components * Recursive directory scanning * Recursive file/directory removal (rm -r)
MissingH.Path.Glob * Expand wildcards to obtain a list of files
MissingH.Path.WildPath * Evaluate filenames or strings against wildcards * Convert wildcards to regular expressions
MissingH.Regex.Pesco * Perl-like regular expression operations and operators
MissingH.Str * Leading/trailing whitespace removal * Beginning/ending tests * Joining, splitting, and truncation
MissingH.Str.CSV * Parsing of comma-separated value (CSV) files
MissingH.Threads * Threaded callbacks
MissingH.Time * Utilities for working with times and dates
MissingH.Time. * Parsing of dates, similar to strptime() in C ParseDate
Wash.Mail.* * Generate or parse e-mail messages * Full support for headers and MIME
Wash.Utility.* * Base64 codec * Various Internet-related parsers
The entire library has no prerequisites save the Haskell standard library and is designed to install without complexity on a variety of systems. It could also easily be embedded within your own source trees so that users need not have it installed beforehand.
MissingH was written by John Goerzen [email protected].
arch-tag: general information