{"id":17183398,"url":"https://github.com/geod24/libsodiumd","last_synced_at":"2026-01-05T14:42:44.609Z","repository":{"id":49507222,"uuid":"166966422","full_name":"Geod24/libsodiumd","owner":"Geod24","description":"Simple D bindings for libsodium","archived":false,"fork":false,"pushed_at":"2024-05-23T23:05:31.000Z","size":40,"stargazers_count":4,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"upstream-1.0.18","last_synced_at":"2025-01-30T03:42:42.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Geod24.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-22T09:32:13.000Z","updated_at":"2024-05-23T23:05:35.000Z","dependencies_parsed_at":"2023-01-19T18:45:48.550Z","dependency_job_id":null,"html_url":"https://github.com/Geod24/libsodiumd","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geod24%2Flibsodiumd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geod24%2Flibsodiumd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geod24%2Flibsodiumd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geod24%2Flibsodiumd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Geod24","download_url":"https://codeload.github.com/Geod24/libsodiumd/tar.gz/refs/heads/upstream-1.0.18","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245388264,"owners_count":20607149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-15T00:40:28.356Z","updated_at":"2026-01-05T14:42:44.557Z","avatar_url":"https://github.com/Geod24.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Libsodiumd: D bindings for libsodium\n\n[![DUB Package](https://img.shields.io/dub/v/libsodiumd.svg)](https://code.dlang.org/packages/libsodiumd)\n\nCurrently supported version: v1.0.18 (released 2019-05-31)\n\nThose bindings are simple translation from C to D.\nThey are simple, stupid, unnanotated - minimal modification has been applied\nto make sure any new release does not lead to excessive work.\n\n## Usage / Documentation\n\nThis wrapper provide a `package` file, just like `#include \"sodium.h\"`.\nJust `import libsodium;` to get all available symbols.\n\nSome unittests are available in said package file.\nFor a more comprehensive documentation, refer directly to [libsodium's doc](https://libsodium.gitbook.io/doc/).\n\n## Binding generation\n\nThe bindings were generated with the following procedure:\n- Install [dstep](https://github.com/jacob-carlborg/dstep).\n- Clone the [official repository](https://github.com/jedisct1/libsodium/).\n- Checkout the required version\n- Translate C headers to D modules:\n```sh\nfind \"$LIBSODIUM_REPO/src/libsodium/include/sodium\" -maxdepth 1 -xtype f -name '*.h' \\\n    -exec ${DSTEP} --collision-action=ignore --skip randombytes_salsa20_implementation '{}' \\; \\\n    -exec sh -c 'mv $(dirname \"$0\")/*.d ${LIBSODIUMD_PACKAGE}' {}  \\;\n```\n  With `$DSTEP`, `$LIBSODIUM_REPO` and `$LIBSODIUMD_PACKAGE` being the dstep binary and path to git repositories, respectively.\n\nThen, a few manual adjustment were made:\n- `mv source/libsodium/export.d source/libsodium/export_.d` as it conflicts with a D keyword\n- Module documentation, module name, and standard import were added:\n```sh\nfor file in $(find source/libsodium -name \"*.d\")\ndo\necho \"\\\n/*******************************************************************************\n\n    D language bindings for libsodium's $(basename $file | cut -d'.' -f1).h\n\n    License: ISC (see LICENSE.txt)\n\n*******************************************************************************/\n\nmodule libsodium.$(basename $file | cut -d'.' -f1);\n\n@nogc nothrow:\n\nimport libsodium.export_;\n\" | cat - $file \u003e $file.tmp \u0026\u0026 mv $file.tmp $file\ndone\n```\n- Turn `ULL` constants into `UL`:\n```sh\nfor file in $(find source/libsodium -name \"*.d\")\ndo\nsed -i '' -e 's/([[:digit:]])ULL/\\1UL/g' $file\ndone\n```\n\n- Try to compile and add missing imports\n- Generate `source/libsodium/package_.d`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeod24%2Flibsodiumd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeod24%2Flibsodiumd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeod24%2Flibsodiumd/lists"}