Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
------------------------- What is MissingH? ------------------------- It's a collection of Haskell-related utilities. It is an extension of my earlier work developing MissingLib for OCaml. You can download MissingH from http://quux.org/devel/missingh. There is a mirror, with a few days' lag, at http://ftp.debian.org/debian/pool/main/m/missingh. ------------------------- Major Features ------------------------- * 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: + FTP client library + E-mail client library + MIME types library to determine MIME types from files or URLs + Configuration file parser/generator * 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 variuos 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, parers, 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 FiniteMap in the AnyDBM interface FiniteMapDBM 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.Debian * Compare two Debian version numbers MissingH.Debian. * Parse debian/control files or output from ControlParser various Debian commands that use the same format 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.FiniteMap * Flip a finite map MissingH.Hsemail * E-mail parsers MissingH.IO * Copying data between files or handles * Lazy operations on line input MissingH.IO.Binary * Binary I/O with Haskell strings * Lazy operations on binary blocks 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.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.Printf * Format strings using C-like syntax * Support for args as a list or as a variable-length argument 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. ** THIS IS CURRENTLY BETA-QUALITY CODE; MAJOR API FLUCTUATIONS MAY YET OCCUR. ------------------------- Quick Start ------------------------- See the file INSTALL. ------------------------- Usage in programs ------------------------- You can simply use -package MissingH in most compilers to enable this library. Hugs users will need to use -98 +o to use certain modules. GHC users will need to use this for certain modules: -fallow-overlapping-instances -fallow-undecidable-instances \ -fglasgow-exts The API docs can be built with "make doc", or you can find them at: http://quux.org/devel/missingh ------------------------- Author & Homepage ------------------------- MissingH was written by John Goerzen <firstname.lastname@example.org>. The latest version may be obtained at: gopher://quux.org/1/devel/missingh or: http://quux.org/devel/missingh Documentation is also available on that page. This program is copyrighted under the terms of the GNU General Public License. See the COPYRIGHT and COPYING files for more details. If the GPL is unacceptable for your uses, please e-mail me; alternative terms can be negotiated for your project. Certain code in MissingH was written by third parties. Licenses of these components may vary and are stated in COPYRIGHT. All code in MissingH is GPL-compatible, and the work as a whole may be distributed as a GPL'd work. arch-tag: general information