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