This is a collection of modules that I've released over the years. Most of them stand alone, or have just one or two dependencies in here, so you don't have to download this whole repo.
d
Go to file
Adam D. Ruppe 78cf7a2c4d fix another rare boundary error bug 2022-01-05 09:34:43 -05:00
docs 5500 page omnibus bill no need to read this just vote for it 2020-12-28 10:57:20 -05:00
minigui_addons little things 2021-12-22 18:49:12 -05:00
LICENSE this stuff is mostly boost licensed 2011-12-15 15:53:50 -05:00
README.md prep for release 2021-06-08 22:22:10 -04:00
apng.d more cool features 2021-12-29 11:29:08 -05:00
archive.d omg 2021-10-22 16:48:16 -04:00
argon2.d wip 2020-11-24 17:42:09 -05:00
arsd.ddoc fixes 2015-09-19 17:07:53 -04:00
audio.d more welcome docs 2019-12-06 23:23:59 -05:00
blendish.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
bmp.d bug fixes and hack to read corrupted files 2020-12-23 21:32:59 -05:00
cgi.d more cool features 2021-12-29 11:29:08 -05:00
characterencodings.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
cidr.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
color.d more grid size fixes and thread helpers 2021-12-03 21:42:07 -05:00
com.d Fix moar bugs 2021-02-25 10:48:50 -05:00
comhelpers.d more cool stuff from working on windows today 2019-12-19 23:36:33 -05:00
csv.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
curl.d jawesome 2020-09-07 22:32:53 -04:00
database.d little things 2021-11-27 22:21:05 -05:00
database_generation.d database_generation: Don't require an id attribute for insert 2021-05-07 22:12:52 +02:00
dbus.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
dds.d new dmd deprecation (ugh) 2018-02-26 19:50:25 -05:00
declarativeloader.d fixes 2020-04-18 21:33:41 -04:00
dom.d more toPrettyString tests 2021-12-09 22:23:35 -05:00
dub.json add more stuff to dub 2021-12-09 22:23:41 -05:00
email.d style edits 2021-08-12 16:43:50 -04:00
engine.d i botched a syntax port 2021-11-01 19:54:20 -04:00
english.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
eventloop.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
exception.d selector bugs 2016-02-27 13:20:02 -05:00
fibersocket.d 5500 page omnibus bill no need to read this just vote for it 2020-12-28 10:57:20 -05:00
game.d little things 2021-09-28 14:31:37 -04:00
gamehelpers.d 5500 page omnibus bill no need to read this just vote for it 2020-12-28 10:57:20 -05:00
generatedomcases.d change string switch to sorted array to cut out 120 KB of symbol names (seriously) and some other genrated code 2021-11-02 15:39:37 -04:00
gpio.d more catchup 2021-06-08 15:03:50 -04:00
hmac.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
html.d gdc compat 2020-02-17 20:09:47 -05:00
htmltotext.d forgot to forward 2020-01-13 18:08:17 -05:00
htmlwidget.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
http.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
http2.d fix another rare boundary error bug 2022-01-05 09:34:43 -05:00
image.d 5500 page omnibus bill no need to read this just vote for it 2020-12-28 10:57:20 -05:00
imageresize.d docs 2021-12-22 18:48:11 -05:00
jni.d windows note in doc 2021-12-09 17:32:42 -05:00
joystick.d little things 2021-09-28 14:31:37 -04:00
jpeg.d work with older compilers again 2021-02-01 21:32:50 -05:00
jpg.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
jsvar.d string was too restrictive, const char good enough 2021-12-22 18:48:36 -05:00
libeay32.dll libssh2 binding (minimal) 2015-05-12 21:35:51 -04:00
libssh2.d fixes 2021-06-16 14:15:58 -04:00
libssh2.dll libssh2 binding (minimal) 2015-05-12 21:35:51 -04:00
libssh2.lib libssh2 binding (minimal) 2015-05-12 21:35:51 -04:00
mailserver.d 5500 page omnibus bill no need to read this just vote for it 2020-12-28 10:57:20 -05:00
mangle.d clean house 2019-12-06 22:07:26 -05:00
midi.d lots of stuff 2020-06-15 10:46:51 -04:00
minigui.d moar bugz 2021-12-29 19:34:58 -05:00
minigui_xml.d little things 2021-12-22 18:49:12 -05:00
mp3.d play small mp3s with id tags 2020-12-31 14:11:13 -05:00
mssql.d scope issue fix thanks to Юрий Кудинов 2020-07-02 09:39:52 -04:00
mvd.d make mvd workable on objects 2021-11-23 10:22:18 -05:00
mysql.d random fixes 2021-02-01 21:35:56 -05:00
nanovega.d toc 2021-09-13 09:10:23 -04:00
nukedopl3.d little things 2021-11-27 22:21:05 -05:00
oauth.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
package.d 5500 page omnibus bill no need to read this just vote for it 2020-12-28 10:57:20 -05:00
pcx.d new dmd deprecation (ugh) 2018-02-26 19:50:25 -05:00
png.d more cool features 2021-12-29 11:29:08 -05:00
postgres.d some setup docs 2021-10-19 09:42:08 -04:00
qrcode.d initial commit 2021-07-28 22:23:24 -04:00
querygenerator.d Documentation improvements. 2013-01-12 15:08:49 +01:00
reggaefile.d try to make reggae work 2019-12-19 10:17:42 -05:00
rpc.d omg so much scary stuff 2020-01-01 11:51:20 -05:00
rss.d fixes 2021-03-29 10:05:24 -04:00
rtud.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
screen.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
script.d omg i forgot stuff 2021-01-19 23:03:19 -05:00
sha.d lol oops 2019-12-06 23:12:13 -05:00
simpleaudio.d more cool features 2021-12-29 11:29:08 -05:00
simpledisplay.d more cool features 2021-12-29 11:29:08 -05:00
sqlite.d little things 2021-11-27 22:21:05 -05:00
sslsocket.d fixes for gdc9 again 2020-12-25 10:05:36 -05:00
stb_truetype.d more clean 2019-12-06 22:10:25 -05:00
svg.d maor dox 2020-02-20 13:37:14 -05:00
targa.d new dmd deprecation (ugh) 2018-02-26 19:50:25 -05:00
terminal.d slightly better multi line editor scrolling 2021-11-28 21:37:19 -05:00
terminalemulator.d experiment to optimize redraw but it didnt really deliver - just 1 ms improvement - vs the bugs in running vim so commented out but might come back to later 2021-12-20 11:36:13 -05:00
ttf.d add stbtt_GetFontXHeight 2021-02-28 20:40:22 -05:00
vorbis.d take fix from upstream stb to work around llvm bug (thanks Guillaume) 2021-10-04 19:50:55 -04:00
wav.d lots of stuff 2020-06-15 10:46:51 -04:00
web.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
web.d.php Merge branch 'master' of https://github.com/eskimor/misc-stuff-including-D-programming-language-web-stuff 2012-11-26 15:55:35 -05:00
webtemplate.d a few little web enhancements 2021-07-28 22:23:38 -04:00
webview.d add more stuff to dub 2021-12-09 22:23:41 -05:00
wmutil.d fixup webfreaks PR 2018-03-08 17:22:41 -05:00
xwindows.d BREAKING CHANGE: add package to simpledisplay and terminal 2016-04-07 14:57:33 -04:00

README.md

About

This is a collection of modules that I've released over the years (the oldest module in here was originally written in 2006, pre-D1!) for a wide variety of purposes. Most of them stand alone, or have just one or two dependencies in here, so you don't have to download this whole repo. Feel free to email me, destructionator@gmail.com or ping me as adam_d_ruppe on the #d IRC channel if you want to ask me anything.

I'm always adding to it, but my policy on dependencies means you can ignore what you don't need. I am also committed to long-term support. Even the obsolete modules I haven't used for years I usually keep compiling at least, and the ones I do use I am very hesitant to break backward compatibility on. My semver increases are very conservative.

See the full list of (at least slightly) documented module here: http://arsd-official.dpldocs.info/arsd.html and refer to https://code.dlang.org/packages/arsd-official for the list of dub-enabled subpackages.

I have a patreon and my (almost) weekly blog you can check out if you'd like to financially support this work or see the updates and tips I write about.

Breaking Changelog

This only lists changes that broke things and got a major version bump. I didn't start keeping track here until 9.0.

Please note that I DO consider changes to build process to be a breaking change, but I do NOT consider symbol additions, changes to undocumented members, or the occasional non-fatal deprecation to be breaking changes. Undocumented members may be changed at any time, whereas additions and/or deprecations will be a minor version change.

10.0

Released: May 2020

minigui 2.0 came out with deprecations on some event properties, moved style properties, and various other changes. See http://arsd-official.dpldocs.info/arsd.minigui.html#history for details.

database.d now considers null strings as NULL when inserting/updating. before it would consider it '' to the database. Empty strings are still ''.

9.0

Released: December 2020

simpledisplay's OperatingSystemFont, which is also used by terminalemulator.d (which is used by terminal.d's -version=TerminalDirectToEmulator function) would previously only load X Core Fonts. It now prefers TrueType fonts via Xft. This loads potentially different fonts and the sizes are interpreted differently, so you may need to adjust your preferences there. To restore previous behavior, prefix your font name strings with "core:".

http2.d's "connection refused" handler used to throw an exception for any pending connection. Now it instead just sets that connection to aborted and carries on with other ones. When you are doing a request, be sure to check response.code. It may be < 100 if connection refused and other errors. You should already have been checking the http response code, but now some things that were exceptions are now codes, so it is even more important to check this properly.

Prehistory:

8.0 Released: June 2020

7.0 and 6.0 Released: March 2020 (these were changes to the terminal.d virtual methods, tag 6.0 was a mistake, i pressed it too early)

5.0 Released: January 2019

4.0 and 3.0 Released: July 2019 and June 2019, respectively. These had to do with dub subpackage configuration changes IIRC.

2.0 Released (first use of semver tagging, before this I would only push to master): March 2018

April 2016: simpledisplay and terminal renamed to arsd.simpledisplay and arsd.terminal

September 2015: simpledisplay started to depend on color.d instead of being standalone

Joined dub (tagged 1.0): June 2015

Joined github: July 2011

Started project on my website: 2008

Credits

Thanks go to Nick Sabalausky, Trass3r, Stanislav Blinov, ketmar, maartenvd, and many others over the years for input and patches.

Several of the modules are also ports of other C code, see the comments in those files for their original authors.

Conventions

Many http-based functions in the lib also support unix sockets as an alternative to tcp.

With cgi.d, use

--host unix:/path/here

or, on Linux:

--host abstract:/path/here

after compiling with -version=embedded_httpd_thread to serve http on the given socket. (abstract: does a unix socket in the Linux-specific abstract namespace).

With http2.d, use

Uri("http://whatever_host/path?args").viaUnixSocket("/path/here")

any time you are constructing a client. Note that navigateTo may lose the unix socket unless you specify it again.