Over the past few years, I've released a few programs written in
D which I've never announced here before, since they were not
targeted at D programmers. Some of them seem to have caught on
with some degree of popularity.
After seeing the recent DMD download stats, I thought to check
the stats for my downloads, and was pleasantly surprised to find
them higher than I expected. So, it's probably as good a time as
any to post about these programs here. Perhaps someone can find
something useful in their source code, or use them as examples of
D code in the wild.
1. trimcheck
This is a Windows program which attempts to provide an easy way
to test whether the TRIM command reaches your SSD. It is useful
for testing various driver/firmware versions and RAID
configurations, as the TRIM command may or may not be properly
forwarded at each layer to the next.
trimcheck has been featured on a few hardware news websites,
including The SSD Review and TweakTown.
trimcheck currently consists of a single .d file, 468 lines long.
It is not a very complicated program, and uses few D-specific
features, though the scope statements were a welcome aid in
cleanly handling Windows resources.
trimcheck is licensed under the MPL 2.0, and gets about 200
downloads per day.
https://github.com/CyberShadow/trimcheck
2. dhcptest
dhcptest is a cross-platform DHCP client and testing tool.
Although it started out as an interactive test tool, a stream of
feature requests have also grown it into a non-interactive DHCP
client (which prints received replies, as opposed to applying
them onto the host system's network configuration).
dhcptest currently also consists of a single .d file, 711 lines
long. std.format's capabilities were useful for presenting sent
and received data, but otherwise it is also relatively simple.
dhcptest is licensed under the Boost Software License 1.0. The
Windows binary is downloaded about 50 times every day.
https://github.com/CyberShadow/dhcptest
3. RABCDAsm
RABCDAsm, one of my oldest D projects, is an ABC (ActionScript
Byte Code) assembler and disassembler. ABC is the bytecode format
used in .swf files for compiled ActionScript 2 and 3 code, and in
the Adobe Flash runtime, interpreted by the ActionScript Virtual
Machine.
RABCDAsm currently consists of 10 programs across 20 modules,
totaling 8488 lines of code. It makes use of several D features,
including compile-time reflection and code generation for
automatic toHash/opEquals/opCmp/toString implementations for its
numerous data structures.
RABCDAsm has been included in the REMnux Linux distribution ("A
Linux Toolkit for Reverse-Engineering and Analyzing Malware"),
and is also available as an Arch Linux package (rabcdasm-git).
RABCDAsm is licensed under the GPLv3 or later. The Windows binary
package is downloaded about 20 times per day.
https://github.com/CyberShadow/RABCDAsm
4. Very Sleepy
This is not a D project, but I would like to include it here as
well. This is a fork of the Very Sleepy polling Windows profiler,
previously maintained by Richard Mitton, with a number of
improvements. Although it still chiefly targets C/C++ programs,
I've used it for (and improved it to work better with) D code: it
should work well with D programs compiled with PDB debug
information (which you can create with DMD using -m64, -m32coff
or Rainer's cv2pdb program).
The profiler is licensed under GPLv2 or newer, and enjoys a
steady trickle of 3-4 downloads per day.
https://github.com/CyberShadow/verysleepy