{"id":13995323,"url":"https://github.com/RoaringBitmap/SwiftRoaring","last_synced_at":"2025-07-22T21:32:35.451Z","repository":{"id":38019796,"uuid":"187263770","full_name":"RoaringBitmap/SwiftRoaring","owner":"RoaringBitmap","description":"A better compressed bitset in Swift http://roaringbitmap.org/","archived":false,"fork":false,"pushed_at":"2023-03-26T11:37:54.000Z","size":16680,"stargazers_count":55,"open_issues_count":0,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-17T19:44:53.758Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RoaringBitmap.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":"AUTHORS"}},"created_at":"2019-05-17T18:29:26.000Z","updated_at":"2023-11-02T19:59:48.000Z","dependencies_parsed_at":"2024-01-20T17:53:58.898Z","dependency_job_id":"27049b51-9650-4aad-ac47-83be62082ecb","html_url":"https://github.com/RoaringBitmap/SwiftRoaring","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoaringBitmap%2FSwiftRoaring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoaringBitmap%2FSwiftRoaring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoaringBitmap%2FSwiftRoaring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoaringBitmap%2FSwiftRoaring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RoaringBitmap","download_url":"https://codeload.github.com/RoaringBitmap/SwiftRoaring/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227177901,"owners_count":17743194,"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-08-09T14:03:20.934Z","updated_at":"2024-11-29T17:31:29.568Z","avatar_url":"https://github.com/RoaringBitmap.png","language":"Swift","funding_links":[],"categories":["Swift"],"sub_categories":[],"readme":"# SwiftRoaring\n\u003ca href=\"https://developer.apple.com/swift\"\u003e\u003cimg src=\"https://img.shields.io/badge/Swift4-compatible-green.svg?style=flat\" alt=\"Swift 4 compatible\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/apple/swift-package-manager\"\u003e\u003cimg src=\"https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg\"/\u003e\u003c/a\u003e\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) ![Ubuntu  CI](https://github.com/RoaringBitmap/SwiftRoaring/workflows/Swift%20on%20Ubuntu%20(latest)/badge.svg)\n\n\n\n\nSwift wrapper for CRoaring (a C/C++ implementation at https://github.com/RoaringBitmap/CRoaring)\n\nRoaring bitmaps are used by several important systems:\n\n*   [Apache Lucene](http://lucene.apache.org/core/) and derivative systems such as Solr and [Elastic](https://www.elastic.co/),\n*   Metamarkets' [Druid](http://druid.io/),\n*   [Apache Spark](http://spark.apache.org),\n*   [Netflix Atlas](https://github.com/Netflix/atlas),\n*   [LinkedIn Pinot](https://github.com/linkedin/pinot/wiki),\n*   [OpenSearchServer](http://www.opensearchserver.com),\n*   [Cloud Torrent](https://github.com/jpillora/cloud-torrent),\n*   [Whoosh](https://pypi.python.org/pypi/Whoosh/),\n*   [Pilosa](https://www.pilosa.com/),\n*   [Microsoft Visual Studio Team Services (VSTS)](https://www.visualstudio.com/team-services/),\n*   eBay's [Apache Kylin](http://kylin.io).\n\nRoaring bitmaps are found to work well in many important applications:\n\n\u003e Use Roaring for bitmap compression whenever possible. Do not use other bitmap compression methods ([Wang et al., SIGMOD 2017](http://db.ucsd.edu/wp-content/uploads/2017/03/sidm338-wangA.pdf))\n\n\n### Dependencies\n\nSwift 4.0 or higher\n\n### Usage using Swift Package Manager\n\nCreate a directory where you will create your application:\n\n```bash\nmkdir foo\ncd foo\nswift package init --type executable\n```\n\nThen edit ``Package.swift`` so that it reads something like this:\n\n\n```swift\nimport PackageDescription\n\nlet package = Package(\n    name: \"foo\",\n    dependencies: [\n   .package(url: \"https://github.com/RoaringBitmap/SwiftRoaring\",  from: \"0.0.1\")\n    ],\n    targets: [\n        .target(\n            name: \"foo\",\n            dependencies: [\"SwiftRoaring\"]),\n    ]\n)\n```\n\nEdit ``main.swift`` (in Sources) so that it looks something like this :\n\n```swift\nimport SwiftRoaring;\n\n....\n```\n\n### Example\n\nHere is a simplified but complete example:\n\n```swift\nimport SwiftRoaring\n\n//Create a new Roaring Bitmap\nlet bitmap = RoaringBitmap()\n\n//Example: Add Range\nbitmap.addRange(min: 0, max: 500)\n\n//Example: copy\nlet cpy = bitmap.copy()\n\n//Example: Operators\nlet and = bitmap \u0026\u0026 cpy\n\n//Example: Iterate\nfor i in bitmap {\n    print(i)\n}\n\n//See documentation for more functionalities!\n\n```\n\n### Development\n\nYou can build using Swift Package Manager as follows:\n\n```bash\nswift build  --configuration release\n```\nTo find where the library is built, type the following\nin your shell:\n```bash\n echo $(swift build   --configuration release  --show-bin-path)\n```\n\nYou can run tests using Swift Package Manager as follows:\n```bash\nswift test\n```\n\n### Interactive use\n\n```\n$ swift build  --configuration release\n$ swift repl -I .build/release -L .build/release -lSwiftRoaringDynamic\n  1\u003e import SwiftRoaring\n  2\u003e let bitmap = RoaringBitmap()\n  3\u003e bitmap.add(1)\n  4\u003e for i in bitmap {\n       print(i)\n     }\n```\n\n### Mailing list/discussion group\n\nhttps://groups.google.com/forum/#!forum/roaring-bitmaps\n\n### Compatibility with Java RoaringBitmap library\n\nYou can read bitmaps in Go, Java, C, C++ that have been serialized in Java, C, C++.\n\n### References\n\n-  Daniel Lemire, Owen Kaser, Nathan Kurz, Luca Deri, Chris O'Hara, François Saint-Jacques, Gregory Ssi-Yan-Kai,  Software: Practice and Experience Volume 48, Issue 4 April 2018 Pages 867-895 [arXiv:1709.07821](https://arxiv.org/abs/1709.07821)\n-  Samy Chambi, Daniel Lemire, Owen Kaser, Robert Godin,\nBetter bitmap performance with Roaring bitmaps,\nSoftware: Practice and Experience Volume 46, Issue 5, pages 709–719, May 2016\nhttp://arxiv.org/abs/1402.6407 This paper used data from http://lemire.me/data/realroaring2014.html\n- Daniel Lemire, Gregory Ssi-Yan-Kai, Owen Kaser, Consistently faster and smaller compressed bitmaps with Roaring, Software: Practice and Experience Volume 46, Issue 11, pages 1547-1569, November 2016 http://arxiv.org/abs/1603.06549\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRoaringBitmap%2FSwiftRoaring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRoaringBitmap%2FSwiftRoaring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRoaringBitmap%2FSwiftRoaring/lists"}