numem 0.7.0

Memory managment utilities for D


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

<p align="center"> <img src="numem.png" alt="NuMem" style="width: 50%; max-width: 512px; height: auto;"> </p>

Nu:Mem is a package for D which implements various nogc memory managment tools, allowing classes, strings, and more to be handled safely in nogc mode. This library is still a work in progress, but is intended to be used within Inochi2D's nogc rewrite to allow the library to have good ergonomics, while allowing more seamless integration with other programming languages.

     

Roadmap

This is a incomplete and unordered roadmap of features I want to add and have added

  • [x] Utilities for managing D classes with no gc
  • [x] nogc_new (nogc new alternative)
  • [x] nogc_delete (nogc destroy alternative)
  • [x] Smart (ref-counted) pointers.
  • [x] shared_ptr (strong reference)
  • [x] weak_ptr (weak, borrowed reference)
  • [x] unique_ptr (strong, single-owner reference)
  • [x] C++ style vector struct
  • [x] C++ style string struct
  • [x] C++ style map
  • [x] C++ style set
  • [ ] Safe nogc streams**
  • [x] FileStream*
  • [x] MemoryStream*
  • [ ] NetworkStream
  • [x] Endianness utilities
  • [x] Support for minimal D runtime
  • [x] tinyd-rt**
  • [x] File handling**
  • [x] Check if file exists
  • [ ] Iterate directories
  • [ ] Cross platform path handling
  • [ ] Networking
  • [ ] Sockets
  • [ ] IP utilities
  • [ ] Character encoding handling
  • [ ] Unicode
  • [ ] Allow plugging more handlers in?
  • [ ] String formatting (compatible with phobos syntax?)

*: Implemented but untested. **: Partially implemented.

Note

Some parts of the library will pretend GC'ed types are no-gc, as such you should be careful about mixing GCed code in.

Authors:
  • Inochi2D Project
Dependencies:
tinyd-rt
Versions:
0.23.8 2024-Nov-13
0.23.7 2024-Nov-13
0.23.6 2024-Nov-10
0.23.5 2024-Oct-15
0.23.4 2024-Oct-12
Show all 42 versions
Download Stats:
  • 15 downloads today

  • 106 downloads this week

  • 422 downloads this month

  • 1650 downloads total

Score:
3.4
Short URL:
numem.dub.pm