{"id":22882923,"url":"https://github.com/tim-janik/scl","last_synced_at":"2025-03-31T16:51:13.182Z","repository":{"id":203317082,"uuid":"709284455","full_name":"tim-janik/scl","owner":"tim-janik","description":"Small C/C++ Bits","archived":false,"fork":false,"pushed_at":"2023-12-24T12:47:12.000Z","size":280,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2025-02-06T22:14:11.083Z","etag":null,"topics":["chacha","chacha8","csprng","entropy","keccak","mwc","prng","public-domain","rdrand","shishua","spline"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tim-janik.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}},"created_at":"2023-10-24T12:09:37.000Z","updated_at":"2023-12-24T12:44:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"45b8fd1f-e05c-4436-a197-edd8e0be2526","html_url":"https://github.com/tim-janik/scl","commit_stats":null,"previous_names":["tim-janik/scb","tim-janik/scl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fscl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fscl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fscl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fscl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tim-janik","download_url":"https://codeload.github.com/tim-janik/scl/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246500389,"owners_count":20787689,"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":["chacha","chacha8","csprng","entropy","keccak","mwc","prng","public-domain","rdrand","shishua","spline"],"created_at":"2024-12-13T18:30:16.811Z","updated_at":"2025-03-31T16:51:13.136Z","avatar_url":"https://github.com/tim-janik.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# SCL\n\nThe Small/simple C/C++ Library (SCL) provides various algorithms in a portable way, with little to no external dependencies.\nThe library is written in C++17 and uses the [MPL-2.0 License](http://mozilla.org/MPL/2.0) or [Public Domain](https://unlicense.org/) dedications.\n\nThe subdirectories are structured as follows:\n\n* `mwc256/` contains a Public Domain 256 bit Multiply-With-Carry PRNG implementation for generic CPUs (ALU).\n  With just a multiplication and add per round, this PRNG is as simple as it can get. On 64 bit machines it\n  is probably the fastest single-data PRNG implementation, it passes PractRand at 32TB.\n* `shishua/` contains a Public Domain Shishua PRNG implementation for generic CPUs (ALU), the SSE2/3 and AVX2 instruction set variants.\n  This is currently the fastest known PRNG implementation, it passes PractRand at 32TB.\n* `chacha/` contains a Public Domain ChaCha block cipher implementation for generic CPUs (ALU), the SSE2/3 and AVX2 instruction set variants.\n  This is probably the fastest CSPRNG implementation, it passes PractRand at 32TB.\n* `keccak/` contains a Public Domain Keccak PRNG implementation for generic CPUs (ALU) and system entropy gathering code according to the\n  \"Welcome to the Entropics: Boot-Time Entropy in Embedded Devices\" paper.\n  Using Keccak allows for a 1600 bit CSPRNG entropy pool, it passes PractRand at 32TB.\n* `spline/` contains a Public Domain cubic spline interpolation implementation, which can be used to create an approximation of a function\n  given a number of knots (control points) with third-order polynomial segments connecting each pair of data points.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-janik%2Fscl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftim-janik%2Fscl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-janik%2Fscl/lists"}