{"id":32159980,"url":"https://github.com/crabmusket/hscuid","last_synced_at":"2026-02-23T04:33:59.743Z","repository":{"id":32643804,"uuid":"36230292","full_name":"crabmusket/hscuid","owner":"crabmusket","description":"Collision-resistant IDs for horizontal scaling","archived":false,"fork":false,"pushed_at":"2017-04-19T07:13:43.000Z","size":44,"stargazers_count":10,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-08T12:34:26.419Z","etag":null,"topics":["cuid","haskell"],"latest_commit_sha":null,"homepage":"https://usecuid.org/","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"marmelab/reversi-reason","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crabmusket.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}},"created_at":"2015-05-25T12:34:06.000Z","updated_at":"2023-02-28T01:44:46.000Z","dependencies_parsed_at":"2022-07-12T15:40:34.096Z","dependency_job_id":null,"html_url":"https://github.com/crabmusket/hscuid","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/crabmusket/hscuid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crabmusket%2Fhscuid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crabmusket%2Fhscuid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crabmusket%2Fhscuid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crabmusket%2Fhscuid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crabmusket","download_url":"https://codeload.github.com/crabmusket/hscuid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crabmusket%2Fhscuid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29738079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T02:24:00.660Z","status":"ssl_error","status_checked_at":"2026-02-23T02:22:56.087Z","response_time":90,"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":["cuid","haskell"],"created_at":"2025-10-21T13:31:00.763Z","updated_at":"2026-02-23T04:33:59.714Z","avatar_url":"https://github.com/crabmusket.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hscuid\n\n[![Build Status](https://img.shields.io/travis/crabmusket/hscuid/master.svg?label=tests)](https://travis-ci.org/crabmusket/hscuid)\n[![Hackage](https://img.shields.io/hackage/v/hscuid.svg)](https://hackage.haskell.org/package/hscuid)\n\nA Haskell port of the [JavaScript library][cuid] for collision-resistant identifiers.\nTo install, [`cabal install hscuid`][hscuid].\n\n## What is a CUID?\n\nCUIDs are short random strings designed so that you can generate a lot of them over many different machines and not get collisions.\nThey are intended to be usable in situations from HTML element IDs to database keys.\nYou can read more about them at [usecuid.org][].\n\n## How do I use this library?\n\n```haskell\n\u003e\u003e\u003e import Web.Cuid (newCuid, newSlug)\n\u003e\u003e\u003e newCuid\n\"cib3c3tcu0000zwowx9ho2gh4\"\n\u003e\u003e\u003e newSlug\n\"y900001wmf\"\n```\n\n## Developing\n\nI am currently developing with [stack][].\nTo install dependencies and compile the library and test suites:\n\n```sh\nstack build\n```\n\nTo run the collision test suite (which generates 1.2M IDs and makes sure they're all unique):\n\n```sh\nstack test\n```\n\nTo test performance with [criterion][]:\n\n```sh\nstack exec perf-test -- --regress allocated:iters +RTS -T\n```\n\n[cuid]: https://github.com/ericelliott/cuid\n[hscuid]: https://hackage.haskell.org/package/hscuid\n[semver]: http://semver.org\n[usecuid.org]: https://usecuid.org\n[criterion]: https://hackage.haskell.org/package/criterion\n[stack]: https://haskellstack.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrabmusket%2Fhscuid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrabmusket%2Fhscuid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrabmusket%2Fhscuid/lists"}