January 16, 2015
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
January 16, 2015
On 1/16/15 7:56 AM, Vladimir Panteleev wrote:
> 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.
[snip]

Nice work, shared:

https://www.reddit.com/r/programming/comments/2sn2cm/three_utilities_written_in_d/

https://twitter.com/D_Programming/status/556125342835159040


Andrei