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 56fe895a81 more ime fixes and cursor placement support for embedded termnial 2022-12-06 09:29:21 -05:00
docs forgot to commit this 2022-10-21 17:33:21 -04:00
minigui_addons more ime fixes and cursor placement support for embedded termnial 2022-12-06 09:29:21 -05:00
LICENSE
README.md prep for release 2021-06-08 22:22:10 -04:00
apng.d oops should have committed this ages ago 2022-04-22 07:51:00 -04: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 minor tweaks to old code 2022-04-05 16:32:54 -04:00
blendish.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
bmp.d add some docs to old functions 2022-10-24 16:32:10 -04:00
cgi.d musl fix 2022-11-15 16:12:55 -05:00
characterencodings.d use replacement char instead of nothing in lossy read 2022-10-01 20:38:17 -04:00
cidr.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
color.d toying with oklab colors. i dont love it 2022-12-06 09:09:20 -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 change of binary data - POTENTIALLY BREAKING - test your code 2022-08-02 12:08:53 -04:00
database_generation.d Add integral field check to find 2022-11-12 19:59:06 +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 fix regression that broke rss 2022-10-26 21:05:14 -04:00
dub.json initial version of date/time/calendar pickers 2022-03-22 18:01:40 -04:00
email.d style edits 2021-08-12 16:43:50 -04:00
engine.d minor tweaks to old code 2022-04-05 16:32:54 -04:00
english.d improve number readability and stop dscanner from complaining 2022-10-20 14:51:09 +03: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 Add `scope` to Socket derived functions 2022-07-05 10:53:57 +02:00
game.d Merge branch 'master' of github.com:adamdruppe/arsd 2022-11-20 09:22:36 -05: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 work around phobos bug 2022-12-06 09:09:29 -05:00
ico.d windows icon file basic support 2022-07-21 12:56:28 -04: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 stuff 2022-06-13 20:38:21 -04:00
jpeg.d handle this other random image 2022-07-26 11:03:29 -04:00
jpg.d basic header docs of all public modules 2019-12-06 22:57:49 -05:00
jsvar.d good stuff 2022-01-29 15:36: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 more midi stuff 2022-01-05 10:25:58 -05:00
midiplayer.d more midi stuff 2022-01-05 10:25:58 -05:00
minigui.d more ime fixes and cursor placement support for embedded termnial 2022-12-06 09:29:21 -05:00
minigui_xml.d little things 2021-12-22 18:49:12 -05:00
mp3.d some more seek helpers 2022-12-06 09:10:10 -05:00
mssql.d change of binary data - POTENTIALLY BREAKING - test your code 2022-08-02 12:08:53 -04:00
mvd.d make mvd workable on objects 2021-11-23 10:22:18 -05:00
mysql.d build fails 2022-08-23 22:04:45 -04:00
nanovega.d build fails 2022-08-23 22:04:45 -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 add some docs to old functions 2022-10-24 16:32:10 -04:00
postgres.d change of binary data - POTENTIALLY BREAKING - test your code 2022-08-02 12:08:53 -04:00
qrcode.d initial commit 2021-07-28 22:23:24 -04:00
querygenerator.d
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 good stuff 2022-01-29 15:36:36 -05:00
sha.d lol oops 2019-12-06 23:12:13 -05:00
simpleaudio.d mp3 overhaul 2022-11-24 09:11:27 -05:00
simpledisplay.d more ime fixes and cursor placement support for embedded termnial 2022-12-06 09:29:21 -05:00
sqlite.d change of binary data - POTENTIALLY BREAKING - test your code 2022-08-02 12:08:53 -04:00
sslsocket.d new dmd 2022-10-25 18:51:05 -04: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 initial api for terminal bold/italic but i don't expecially like it be warned 2022-11-15 16:16:02 -05:00
terminalemulator.d more ime fixes and cursor placement support for embedded termnial 2022-12-06 09:29:21 -05:00
ttf.d add stbtt_GetFontXHeight 2021-02-28 20:40:22 -05:00
vorbis.d ogg seeking in the interface 2022-11-20 18:01:04 -05:00
wav.d add duration member 2022-12-06 09:08:54 -05:00
web.d dmd deprecation handling 2021-06-15 07:23:17 -04:00
web.d.php
webtemplate.d webtemplate skeleton uda 2022-03-07 16:25:28 -05:00
webview.d update cef to latest again 2022-11-15 09:53:29 -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.