arsd

This package contains a variety of independent modules that I have written over my years of using D.

You can usually use them independently, with few or no dependencies, so it is easy to use raw, or you can use dub packages as well.

Modules

bmp
module arsd.bmp

bmp impl for MemoryImage

cgi
module arsd.cgi

Provides a uniform server-side API for CGI, FastCGI, SCGI, and HTTP web applications.

characterencodings
module arsd.characterencodings

This is meant to help get data from the wild into utf8 strings so you can work with them easily inside D.

color
module arsd.color
csv
module arsd.csv
curl
module arsd.curl

curl wrapper, it sux

database
module arsd.database
dom
module arsd.dom

This is an html DOM implementation, started with cloning what the browser offers in Javascript, but going well beyond it in convenience.

email
module arsd.email
english
module arsd.english
eventloop
module arsd.eventloop

crappy event loop for linux

exception
module arsd.exception

A draft of a better way to do exceptions

gamehelpers
module arsd.gamehelpers

An add-on for simpledisplay.d, joystick.d, and simpleaudio.d that includes helper functions for writing games (and perhaps other multimedia programs). Whereas simpledisplay works with an event-driven framework, gamehelpers always uses a consistent timer for updates.

hmac
module arsd.hmac
html
module arsd.html

This module includes functions to work with HTML and CSS.

htmltotext
module arsd.htmltotext
http2
module arsd.http2

This is version 2 of my http/1.1 client implementation.

joystick
module arsd.joystick

HIGH LEVEL NOTES

jpg
module arsd.jpg
jsvar
module arsd.jsvar

jsvar provides a D type called var that works similarly to the same in Javascript.

libssh2
module arsd.libssh2

Small wrapper for libssh2 just link with it on Linux it'll need a couple dlls and a lib on windows.

midi
module arsd.midi

This file is a port of some old C code I had.

minigui
module arsd.minigui

minigui is a smallish GUI widget library, aiming to be on par with at least HTML4 forms and a few other expected gui components. It uses native controls on Windows and does its own thing on Linux (Mac is not currently supported but may be later, and should use native controls) to keep size down. The Linux appearance is similar to Windows 95 and avoids using images to maintain network efficiency on remote X connections.

mssql
module arsd.mssql
mysql
module arsd.mysql

NOTE: If you're using MySQL client library v5.0 or less, you must pass this to dmd: -version=Less_Than_MySQL_51 This is important - otherwise you will see bizarre segfaults!

oauth
module arsd.oauth
png
module arsd.png

PNG file handling for color.d's Image interfaces

postgres
module arsd.postgres

minimal libpq wrapper

querygenerator
module arsd.querygenerator

Create SQL queries from string containing D expressions.

script
module arsd.script

A small script interpreter that builds on arsd.jsvar to be easily embedded inside and to have has easy two-way interop with the host D program. The script language it implements is based on a hybrid of D and Javascript. The type the language uses is based directly on var from arsd.jsvar.

sha
module arsd.sha

homemade sha 1 and sha2 impls. beware of bugs.

simpleaudio
module arsd.simpleaudio

The purpose of this module is to provide audio functions for things like playback, capture, and volume on both Windows (via the mmsystem calls)and Linux (through ALSA).

simpledisplay
module arsd.simpledisplay

simpledisplay.d provides basic cross-platform GUI-related functionality, including creating windows, drawing on them, working with the clipboard, timers, OpenGL, and more. However, it does NOT provide high level GUI widgets. See my minigui.d, an extension to this module, for that functionality.

sqlite
module arsd.sqlite

Compile with version=sqlite_extended_metadata_available if your sqlite is compiled with the SQLITE_ENABLE_COLUMN_METADATA C-preprocessor symbol.

terminal
module arsd.terminal

Module for interacting with the user's terminal, including color output, cursor manipulation, and full-featured real-time mouse and keyboard input. Also includes high-level convenience methods, like Terminal.getline, which gives the user a line editor with history, completion, etc. See the examples.

time
module arsd.time
web
module arsd.web

magic web wrapper

xwindows
module arsd.xwindows

This module is obsolete. Its functionality has been merged into simpledisplay.d. You can use it instead and abandon this.

Suggestion Box / Bug Report