{"id":29825440,"url":"https://github.com/certora/collections","last_synced_at":"2025-07-29T04:10:07.334Z","repository":{"id":203189421,"uuid":"688231698","full_name":"Certora/collections","owner":"Certora","description":"Memory-effficient immutable collection types for Kotlin","archived":false,"fork":false,"pushed_at":"2025-01-07T20:50:13.000Z","size":232,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-20T06:19:31.328Z","etag":null,"topics":["collections","kotlin","map","maps","memory-efficiency","memory-efficient","persistent-data-structure","set","sets","treap","treaps"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/Certora.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-09-06T23:47:59.000Z","updated_at":"2025-07-18T03:30:40.000Z","dependencies_parsed_at":"2023-10-24T00:30:12.661Z","dependency_job_id":"b0b1d091-d958-4808-8a25-13de4d94b809","html_url":"https://github.com/Certora/collections","commit_stats":null,"previous_names":["certora/collections"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/Certora/collections","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Certora%2Fcollections","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Certora%2Fcollections/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Certora%2Fcollections/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Certora%2Fcollections/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Certora","download_url":"https://codeload.github.com/Certora/collections/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Certora%2Fcollections/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267627002,"owners_count":24117711,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["collections","kotlin","map","maps","memory-efficiency","memory-efficient","persistent-data-structure","set","sets","treap","treaps"],"created_at":"2025-07-29T04:10:05.160Z","updated_at":"2025-07-29T04:10:07.319Z","avatar_url":"https://github.com/Certora.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Certora Collections\n\n[![](https://jitpack.io/v/certora/collections.svg)](https://jitpack.io/#certora/collections)\n\nFast, memory-efficient immutable collections for Kotlin.\n\n## Motivation\n\nKotlin makes it quite easy and natural to manipulate immutable data structures. However, the standard library does not\nprovide efficient implementations of immutable collections.\n[kotlinx.collections.immutable](https://github.com/Kotlin/kotlinx.collections.immutable) provides a set of interfaces\nthat are designed to be implemented by efficient immutable collections, along with a reference implementation. However,\nin developing the Certora Prover, we found that the reference implementation did not make the right performance\ntradeoffs for our use cases.\n\nMost collection implementations, including the ones mentioned previously, are optimized primarily for speed of\noperations on single elements of the collection, e.g., adding an element to a `Set`, looking up a single value in a\n`Map`, getting a single `List` element by index. However, in many use cases the more performance-critical operations are\nthose that operate over the whole data structure, such computing set unions or intersection of two sets, or merging two\nmaps.\n\nThe Certora Collections library provides `Set` and `Map` and `List` implementations which are optimized primarily for\nsuch operations.  Further, we optimize heavily for memory usage over speed of operations on single elements.  We also\nprovide some additional features that we have found useful in the Certora Prover, such as efficient parallel operations.\n\n## Usage\n\n[![](https://jitpack.io/v/certora/collections.svg)](https://jitpack.io/#certora/collections)\u003cbr/\u003e\nThe Certora Collections library is available on [JitPack](https://jitpack.io/#certora/collections).\n\n### API\n\nThe API builds on the interfaces provided by [kotlinx.collections.immutable].  See The Kotlin Immutable Collections\n[proposal](https://github.com/Kotlin/kotlinx.collections.immutable/blob/master/proposal.md).  We provide some additional\nmethods beyond the `PersistentMap`, `PersistentSet`, and `PersistentList` interfaces provided by\n`kotlinx.collections.immutable`, in the `TreapMap`, `TreapSet`, and `TreapList` interfaces.\n\nTo create instances of these collections, use the functions `treapMapOf`, `treapSetOf`, and `treapListOf`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcertora%2Fcollections","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcertora%2Fcollections","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcertora%2Fcollections/lists"}