{"id":28965875,"url":"https://github.com/inochi2d/nulib","last_synced_at":"2026-02-03T14:02:05.726Z","repository":{"id":278109486,"uuid":"934549399","full_name":"Inochi2D/nulib","owner":"Inochi2D","description":"Alternate standard library for D.","archived":false,"fork":false,"pushed_at":"2026-01-28T17:36:49.000Z","size":1217,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-29T08:09:35.156Z","etag":null,"topics":["dlang","stdlib-replacement"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Inochi2D.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-18T02:45:16.000Z","updated_at":"2026-01-28T17:48:00.000Z","dependencies_parsed_at":"2025-04-30T11:14:52.295Z","dependency_job_id":"ad7afc14-3131-4c16-8128-07b4fe0b983e","html_url":"https://github.com/Inochi2D/nulib","commit_stats":null,"previous_names":["inochi2d/nulib"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/Inochi2D/nulib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inochi2D%2Fnulib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inochi2D%2Fnulib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inochi2D%2Fnulib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inochi2D%2Fnulib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Inochi2D","download_url":"https://codeload.github.com/Inochi2D/nulib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inochi2D%2Fnulib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29047070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dlang","stdlib-replacement"],"created_at":"2025-06-24T07:10:23.094Z","updated_at":"2026-02-03T14:02:05.720Z","avatar_url":"https://github.com/Inochi2D.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"nulib.png\" alt=\"NuMem\" style=\"width: 50%; max-width: 512px; height: auto;\"\u003e\n\u003c/p\u003e\n\n# NuLib\n\n[![Unit Tests](https://github.com/Inochi2D/nulib/actions/workflows/run_tests.yml/badge.svg)](https://github.com/Inochi2D/nulib/actions/workflows/run_tests.yml)\n\nNuLib is an alternative standard library for the D Programming Language, this standard library focuses\non allowing use of high level D constructs without a garbage collector. Additionally these constructs try\nbut are not guaranteed to work with phobos constructs to some extent.\n\nIn practice this allows you to write mixed GC and no-gc code depending on your needs at any given time,\nwith nulib building ontop of `numem` for portability. Additionally nulib can be used with `nurt` to go\nfully no-gc; with the alternate runtime providing the core required hooks for many D language features.\n\n## Why NuLib?\n\nD is an amazing language which bridges both high and low level programming, however with how D's runtime\nis constructed, it can be difficult to use DLang outside of its own ecosystem; namely because its runtime\nand garbage collector makes cross-language interopability difficult.\n\nThe Nu series of libraries aim to fill this gap by both providing tools for users of libphobos and the D\necosystem, and also providing tools for developers who wish to write libraries used from outside of D.\n\n\u0026nbsp;  \n\u0026nbsp;  \n\u0026nbsp;  \n\n# Project Structure\n\nNuLib, as a standard library is a bit on the complex side; however to make it as usable as possible\neven on platforms without direct support, many parts of the standard library utilizes weak symbols\nimplemented by seperate support packages.\n\nIn practice this means that a subset of nulib should work everywhere, even where there's no OS support.\nWhile third party or builtin support packages can provide more parts of functionality, such as shared library\nloading support, threads, etc.\n\nCurrently the structure is split up as follows:\n\n| Directory  | Description                                                    |\n| ---------- | -------------------------------------------------------------- |\n| `source/`  | The main interface of the library                              |\n| `modules/` | Secondary modules and extensions to nulib                      |\n| `os/`      | OS specific implementations for higher level nulib constructs. |\n\n## Adding new OS support modules.\nYou can incrementally add OS-specific functionality by creating a seperate dub package.  \nEvery file that has a higher level wrapper over low level concepts, will have hooks defined\nin a section denoted with \"`FOR IMPLEMENTORS`\", implement the hooks as **non-weak** symbols\nin your library to add the given functionality.\n\n\u0026nbsp;  \n\u0026nbsp;  \n\u0026nbsp;  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finochi2d%2Fnulib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finochi2d%2Fnulib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finochi2d%2Fnulib/lists"}