{"id":26933555,"url":"https://github.com/ppad-tech/base16","last_synced_at":"2025-04-02T09:19:36.840Z","repository":{"id":272931505,"uuid":"918209398","full_name":"ppad-tech/base16","owner":"ppad-tech","description":"(mirror of https://git.ppad.tech/base16)","archived":false,"fork":false,"pushed_at":"2025-02-28T05:37:23.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-28T12:40:37.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ppad-tech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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}},"created_at":"2025-01-17T13:18:42.000Z","updated_at":"2025-02-28T05:37:27.000Z","dependencies_parsed_at":"2025-01-17T14:52:55.041Z","dependency_job_id":"ceb9952b-19c1-46c3-b4b4-d2d5e8391e2a","html_url":"https://github.com/ppad-tech/base16","commit_stats":null,"previous_names":["ppad-tech/base16"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppad-tech%2Fbase16","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppad-tech%2Fbase16/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppad-tech%2Fbase16/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppad-tech%2Fbase16/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ppad-tech","download_url":"https://codeload.github.com/ppad-tech/base16/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246785456,"owners_count":20833498,"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":"2025-04-02T09:19:36.183Z","updated_at":"2025-04-02T09:19:36.835Z","avatar_url":"https://github.com/ppad-tech.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# base16\n\n[![](https://img.shields.io/hackage/v/ppad-base16?color=blue)](https://hackage.haskell.org/package/ppad-base16)\n![](https://img.shields.io/badge/license-MIT-brightgreen)\n[![](https://img.shields.io/badge/haddock-base16-lightblue)](https://docs.ppad.tech/base16)\n\nPure base16 encoding \u0026 decoding on strict ByteStrings.\n\n## Usage\n\nA sample GHCi session:\n\n```\n  \u003e :set -XOverloadedStrings\n  \u003e\n  \u003e -- import qualified\n  \u003e import qualified Data.ByteString.Base16 as B16\n  \u003e\n  \u003e -- simple base16 encoding and decoding\n  \u003e B16.encode \"hello world\"\n  \"68656c6c6f20776f726c64\"\n  \u003e\n  \u003e B16.decode \"68656c6c6f20776f726c64\"\n  Just \"hello world\"\n```\n\n## Documentation\n\nHaddocks (API documentation, etc.) are hosted at\n[docs.ppad.tech/base16](https://docs.ppad.tech/base16).\n\n## Performance\n\nThe aim is best-in-class performance for pure, highly-auditable Haskell\ncode. We could go slightly faster by using direct allocation and writes,\nbut we get pretty close to the best impure versions with only builders.\n\nCurrent benchmark figures on 1kb inputs on a relatively-beefy NixOS VPS look\nlike (use `cabal bench` to run the benchmark suite):\n\n```\n  benchmarking encode/ppad-base16\n  time                 7.634 μs   (7.543 μs .. 7.749 μs)\n                       0.999 R²   (0.998 R² .. 0.999 R²)\n  mean                 7.693 μs   (7.622 μs .. 7.768 μs)\n  std dev              240.6 ns   (196.5 ns .. 324.8 ns)\n\n  benchmarking ppad-base16\n  time                 1.893 μs   (1.871 μs .. 1.919 μs)\n                       0.998 R²   (0.998 R² .. 0.999 R²)\n  mean                 1.897 μs   (1.871 μs .. 1.924 μs)\n  std dev              91.64 ns   (74.26 ns .. 118.2 ns)\n```\n\n## Security\n\nThis library aims at the maximum security achievable in a\ngarbage-collected language under an optimizing compiler such as GHC, in\nwhich strict constant-timeness can be challenging to achieve.\n\nIf you discover any vulnerabilities, please disclose them via\nsecurity@ppad.tech.\n\n## Development\n\nYou'll require [Nix][nixos] with [flake][flake] support enabled. Enter a\ndevelopment shell with:\n\n```\n$ nix develop\n```\n\nThen do e.g.:\n\n```\n$ cabal repl ppad-base16\n```\n\nto get a REPL for the main library.\n\n[nixos]: https://nixos.org/\n[flake]: https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppad-tech%2Fbase16","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fppad-tech%2Fbase16","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppad-tech%2Fbase16/lists"}