-
Notifications
You must be signed in to change notification settings - Fork 40
Utility library [Haskell]
License
haskell-hvr/missingh
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
------------------------- What is MissingH? ------------------------- It's a collection of Haskell-related utilities. It is an extension of my earlier work developing MissingLib for OCaml. ------------------------- 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 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. ------------------------- Author ------------------------- MissingH was written by John Goerzen <[email protected]>. arch-tag: general information
About
Utility library [Haskell]
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published