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.

Reply via email to