Newbie -> midbie, personal projects

Andy Valencia dont at spam.me
Sun Jul 12 01:33:45 UTC 2026


I thought I should mention some of what has fallen out of my 
learning D.
These are bits and pieces, coded in a minimalist approach.  Where 
the OS
matters, its target is Linux.

I've collected my reusable stuff in "libtiny":

https://sources.vsta.org:7100/tiny/index

This includes socket.d, a class-based Socket with inherited
hierarchy of Socket/IPSocket/TcpSocket/UDPSocket/SSLSocket.  The
fetch.d module uses this to support accessing of both TCP and 
SSL/TCP
resources using the same code paths.

There's an embeddable web server middleware in webserv.d.  It's
an SMP-friendly implementation and thread safe.  It has companion 
modules
for authentication and the serving of files (including ranges).

There's a Python-inspired sstruct.d which permits encoding and 
decoding
of byte streams into D data structures, like Python's "struct" 
module.

epub.d is a module for accessing the industry standard epub
ebook format.

There are a number of modules which are lighter weight than 
existing
solutions, or are pure D implementations because they'll be 
touching
possibly malicious data and D safety is desired:

- aes.d AES encryption/decryption
- csv.d A CSV parser
- dtoa.d A float/double formatter
- xml.d An XML parser
- fmt.d Formatting data into a string, sprintf() style
- tag.d Extract metadata from mp3/flac/wav/ogg/aac
- sqlite.d An interface to the sqlite3 library

The smp/ sub-folder has data structures with integrated locking
for SMP applications.

At https://sources.vsta.org/ you can find some projects which use
libtiny:

- wepub2 A web interface read of an EPUB collection

- wplayer2 A web interface to a audio media collection

This is database driven, and can efficiently support even
fairly large media collections (mine is about half a
million tracks).

- wradio2 A web radio streaming player

It's been a fun journey; as a retired engineer pursuing this
in an amateur (as in "for the love of it") capacity, D is quite
possibly the last language I'll learn.



More information about the Digitalmars-d-learn mailing list