sily 3.0.0

Personal library

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:

Sily libraries for D programming language.

sily-raylib and sily-gamelib will be merged and reworked in raylight

README IS WIP (will get full "wiki" at some day)


  • sily.bindbc - BindBC utils
  • sily - Core utils
  • sily.dyaml - Improved dyaml node retrieving
  • sily.sdlang - Improved sdlite
  • sily.unit - Unittest utils


  • sily.color and sily.vector: Contains color and templated vector structs with utils
// Vector can be constructed manually or with aliases
auto v1 = Vector!(int, 2)(10, 20);
auto v2 = ivec2(10, 20);
auto v3 = ivec2(10, 20);
auto v4 = vec2!int(10, 20);
// Also vector can be given only one value,
// in that case it'll be filled with that value
auto v5 = ivec4(13);
auto v6 = vec4(0.3f);
// Vector values can be accessed with array slicing,
// by using color symbols or swizzling
float v6x = v6.x;
float v6z = v6.z;
float[] v6yzx = v6.yzx;
auto rvec7 = Vector!(real, 7)(10);
auto rvec7s = rvec7.VecType(20);
col c = col(3, 4, 1, 2);
col d = c.brg;
col g = Colors.aquamarine;
vec4 v = d;
vec4 e = v.xyyz;
string code = g.toAnsiString();

Color can be converted to bash escape sequence to set/print colors in Ansi8, Ansi256 and TrueColor modes.

  • sily.getopt: Contains custom getopt printer:
help = getopt(
    config.bundling, config.passThrough, std.getopt.config.caseSensitive,
    "columns|c", "Sets width/columns", &conf.width,
    "rows|r", "Sets height/rows", &conf.height,
    "size|s", "Matches size. Must be \'width\', \'height\' or \'fit\'", &conf.size,

    "color|C", "Sets color type. Must be \'ansi8\', \'ansi256\', \'truecolor\'", &conf.color,

if (help.helpWanted || args.length == 1) {
        "Usage: app [args] file",
        customOption("options", "Returns options")
    return 0;

Converts into:

Usage: app [args] image-file

  -c, --columns     Sets width/columns
  -r, --rows        Sets height/rows
  -s, --size        Matches size. Must be 'width', 'height' or 'fit'

  -C, --color       Sets color type. Must be 'ansi8', 'ansi256', 'truecolor'

  options           Returns options
  • sily.array: Array manipulation (fill, search)
  • sily.async: Async (timer, promise) utils
  • sily.clang: Utils to work with C bindings (plus sily.ptr)
  • sily.conv: Streamlined conversion
  • sily.curl: JS-like http requests
  • sily.file: File manipulation
  • sily.math: Misc math utils
  • sily.matrix: Matrix math
  • sily.meta.enums: Unwraps enums
  • sily.meta.swizzle: Swizzling used by sily.vector and sily.color. sily.meta itself is empty
  • sily.path: Path manipulation
  • Template mixin to generate properties
  • sily.ptr: Pointer conversion
  • sily.quat: Quaternion math
  • sily.queue: FCFS queue container
  • sily.random: std.random wrapper
  • sily.stack: LCFS stack container
  • sily.stdio: Stdio wrapper
  • sily.string: String manipulation
  • sily.thread: Thread wrapper
  • sily.time: Time wrapper
  • sily.uid: UID generator
  • sily.uni: std.uni alternative
  • sily.uri: URI/URL parser
  • Alisa Lain
Sub packages:
sily:unit, sily:dyaml, sily:sdlang, sily:bindbc
3.0.0 2023-Oct-17
2.2.0 2023-May-17
2.1.0 2023-May-09
2.0.0 2023-May-03
1.5.1 2023-May-02
Show all 20 versions
Download Stats:
  • 2 downloads today

  • 3 downloads this week

  • 10 downloads this month

  • 267 downloads total

Short URL: