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

apng
module arsd.apng

Support for [animated png|https://wiki.mozilla.org/APNG_Specification] files.

argon2
module arsd.argon2

My minimal interface to https://github.com/p-h-c/phc-winner-argon2

blendish
module arsd.blendish

Revision 6 (2014-09-21)

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
database_generation
module arsd.database_generation

Helper functions for generating database stuff.

dbus
module arsd.dbus

A module mostly copied from https://github.com/trishume/ddbus

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
engine
module arsd.engine

The base class from which a game engine should inherit.

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
htmlwidget
module arsd.htmlwidget

This module has a lot of dependencies

http
module arsd.http
Undocumented in source.
http2
module arsd.http2

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

image
module arsd.image

this file imports all available image decoders, and provides convenient functions to load image regardless of it's format.

joystick
module arsd.joystick

FIXME: a simple function to integrate with sdpy event loop. templated function

jpeg
module arsd.jpeg

Loads a JPEG image from a memory buffer or a file. req_comps can be 1 (grayscale), 3 (RGB), or 4 (RGBA). On return, width/height will be set to the image's dimensions, and actual_comps will be set to the either 1 (grayscale) or 3 (RGB). Requesting a 8 or 32bpp image is currently a little faster than 24bpp because the jpeg_decoder class itself currently always unpacks to either 8 or 32bpp.

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, though you can customize that.

minigui_addons
module arsd.minigui_addons

This package consists of additional widgets for arsd.minigui.

minigui_xml
module arsd.minigui_xml

A small extension module to arsd.minigui that adds functions for creating widgets and windows from short XML descriptions.

mssql
module arsd.mssql
mysql
module arsd.mysql

Implementation of the arsd.database.Database|database interface for accessing MySQL (and MariaDB) databases. Uses the official MySQL client library, and thus needs that installed to compile and run.

nanovega
module arsd.nanovega

The NanoVega API is modeled loosely on HTML5 canvas API. If you know canvas, you're up to speed with NanoVega in no time.

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.

rpc
module arsd.rpc
Undocumented in source.
rss
module arsd.rss

RSS/Atom feed reading

rtud
module arsd.rtud

This provides a kind of real time updates that can be consumed by javascript (and probably other things eventually).

screen
module arsd.screen
Undocumented in source.
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.

svg
module arsd.svg

NanoVega.SVG is a simple stupid SVG parser. The output of the parser is a list of drawing commands.

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.

ttf
module arsd.ttf

TrueType Font rendering.

vorbis
module arsd.vorbis
Undocumented in source.
web
module arsd.web

magic web wrapper

webtemplate
module arsd.webtemplate

This provides a kind of web template support, built on top of arsd.dom and arsd.script, in support of arsd.cgi.

webview
module arsd.webview

A thin wrapper around common system webviews. Based on: https://github.com/zserge/webview

wmutil
module arsd.wmutil

Cross platform window manager utilities for interacting with other unknown windows on the OS.

xwindows
module arsd.xwindows

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

Meta