{"id":16953486,"url":"https://github.com/dotnwat/persistent-rbtree","last_synced_at":"2026-03-09T22:31:30.585Z","repository":{"id":138077927,"uuid":"125468194","full_name":"dotnwat/persistent-rbtree","owner":"dotnwat","description":"Persistent red-black tree in C++","archived":false,"fork":false,"pushed_at":"2025-10-04T17:11:27.000Z","size":22,"stargazers_count":30,"open_issues_count":4,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-04T19:09:38.974Z","etag":null,"topics":["containers","data-structures","functional-programming","immutable","persistent-data-structure","red-black-tree"],"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/dotnwat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-03-16T05:31:53.000Z","updated_at":"2025-10-04T17:11:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"f9506e1c-540e-442e-b5a6-aec15b376f66","html_url":"https://github.com/dotnwat/persistent-rbtree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dotnwat/persistent-rbtree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnwat%2Fpersistent-rbtree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnwat%2Fpersistent-rbtree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnwat%2Fpersistent-rbtree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnwat%2Fpersistent-rbtree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnwat","download_url":"https://codeload.github.com/dotnwat/persistent-rbtree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnwat%2Fpersistent-rbtree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30314627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"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":["containers","data-structures","functional-programming","immutable","persistent-data-structure","red-black-tree"],"created_at":"2024-10-13T22:07:15.263Z","updated_at":"2026-03-09T22:31:30.565Z","avatar_url":"https://github.com/dotnwat.png","language":"C++","readme":"# Immutable, persistent red-black tree\n\n```c++\nTree\u003cint, int\u003e t;            // t is empty\nauto t0 = t.insert(0, 0);    // t0 contains {0,0}\nauto t1 = t0.insert(1, 1);   // t1 contains {0,0}, {1,1}\n```\n\nThis is a C++ port of the excellent Rust-based implementation\nfrom https://github.com/orium/rpds.\n\n# Performance (20 March 2018)\n\nAll benchmarks run on the following hardware:\n\n```\nCPU Two Intel E5-2660 v3 10-core CPUs at 2.60 GHz (Haswell EP)\nRAM 160GB ECC Memory (10x 16 GB DDR4 2133 MHz dual rank RDIMMs)\n```\n\nThe insert workload measures the insertion performance of 1..20 threads\ninserting 50,000 random keys to an existing tree containing 1..100M keys. The\nkeys are uniformly distributed 64-bit integers. Every insertion forms a new\ntree that is discarded by the thread, so the base tree never changes.\n\nThe `items/s` column below shows the number of keys inserted per second, per\nthread.\n\n```\nRun on (40 X 3300 MHz CPU s)\nCPU Caches:\n  L1 Data 32K (x20)\n  L1 Instruction 32K (x20)\n  L2 Unified 256K (x20)\n  L3 Unified 25600K (x2)\n----------------------------------------------------------------------------\nBenchmark                                     Time           CPU Iterations\n----------------------------------------------------------------------------\nBM_Insert/1/50000/threads:1            14585112 ns   14583913 ns         48   3.26961M items/s\nBM_Insert/1/50000/threads:2            23006072 ns   46008715 ns         16   1061.28k items/s\nBM_Insert/1/50000/threads:4            15072922 ns   60286563 ns         12   809.934k items/s\nBM_Insert/1/50000/threads:8            15310274 ns  122472125 ns          8   398.688k items/s\nBM_Insert/1/50000/threads:16           16799798 ns  268767090 ns         16   181.674k items/s\nBM_Insert/1/50000/threads:20           13710540 ns  274171678 ns         20   178.093k items/s\nBM_Insert/10/50000/threads:1           43361104 ns   43357572 ns         16   1126.17k items/s\nBM_Insert/10/50000/threads:2           61379752 ns  122750333 ns          6   397.784k items/s\nBM_Insert/10/50000/threads:4           34766197 ns  139054203 ns          4   351.145k items/s\nBM_Insert/10/50000/threads:8           24842416 ns  198724029 ns          8   245.708k items/s\nBM_Insert/10/50000/threads:16          28086838 ns  449349336 ns         16   108.664k items/s\nBM_Insert/10/50000/threads:20          22692047 ns  453792110 ns         20     107.6k items/s\nBM_Insert/100/50000/threads:1          70612655 ns   70607468 ns         10   691.543k items/s\nBM_Insert/100/50000/threads:2          95424727 ns  190834486 ns          4   255.866k items/s\nBM_Insert/100/50000/threads:4          51846444 ns  207369635 ns          4   235.464k items/s\nBM_Insert/100/50000/threads:8          40646863 ns  325141208 ns          8   150.175k items/s\nBM_Insert/100/50000/threads:16         26222879 ns  419515123 ns         16   116.392k items/s\nBM_Insert/100/50000/threads:20         26370949 ns  527365311 ns         20   92.5888k items/s\nBM_Insert/1000/50000/threads:1        103091920 ns  103068004 ns          7   473.747k items/s\nBM_Insert/1000/50000/threads:2        125407984 ns  250795451 ns          2   194.693k items/s\nBM_Insert/1000/50000/threads:4         68696828 ns  274758007 ns          4   177.713k items/s\nBM_Insert/1000/50000/threads:8         39250971 ns  313970169 ns          8   155.518k items/s\nBM_Insert/1000/50000/threads:16        34350680 ns  549554322 ns         16   88.8504k items/s\nBM_Insert/1000/50000/threads:20        33472593 ns  669382132 ns         20   72.9451k items/s\nBM_Insert/10000/50000/threads:1       136638279 ns  136627041 ns          5   357.383k items/s\nBM_Insert/10000/50000/threads:2       146108420 ns  292193495 ns          2   167.109k items/s\nBM_Insert/10000/50000/threads:4        80790644 ns  323137977 ns          4   151.106k items/s\nBM_Insert/10000/50000/threads:8        46486877 ns  371865944 ns          8   131.306k items/s\nBM_Insert/10000/50000/threads:16       30153325 ns  482414772 ns         16   101.216k items/s\nBM_Insert/10000/50000/threads:20       26817771 ns  536302848 ns         20   91.0458k items/s\nBM_Insert/100000/50000/threads:1      177791213 ns  177777103 ns          4   274.659k items/s\nBM_Insert/100000/50000/threads:2      187525013 ns  375018379 ns          2   130.202k items/s\nBM_Insert/100000/50000/threads:4      101209401 ns  404806068 ns          4   120.621k items/s\nBM_Insert/100000/50000/threads:8       57154975 ns  457184770 ns          8   106.802k items/s\nBM_Insert/100000/50000/threads:16      36265690 ns  580188563 ns         16   84.1591k items/s\nBM_Insert/100000/50000/threads:20      31374847 ns  627055902 ns         20   77.8689k items/s\nBM_Insert/1000000/50000/threads:1     284157682 ns  284132513 ns          2    171.85k items/s\nBM_Insert/1000000/50000/threads:2     246166604 ns  492293154 ns          2   99.1851k items/s\nBM_Insert/1000000/50000/threads:4     136403581 ns  545572170 ns          4   89.4989k items/s\nBM_Insert/1000000/50000/threads:8      76189559 ns  609448143 ns          8   80.1186k items/s\nBM_Insert/1000000/50000/threads:16     45518500 ns  728188312 ns         16   67.0543k items/s\nBM_Insert/1000000/50000/threads:20     38972236 ns  779353832 ns         20   62.6521k items/s\nBM_Insert/10000000/50000/threads:1    388982227 ns  388877223 ns          2   125.562k items/s\nBM_Insert/10000000/50000/threads:2    309269358 ns  618416331 ns          2   78.9567k items/s\nBM_Insert/10000000/50000/threads:4    171764105 ns  686960578 ns          4   71.0785k items/s\nBM_Insert/10000000/50000/threads:8     94066016 ns  752449714 ns          8   64.8922k items/s\nBM_Insert/10000000/50000/threads:16    51168286 ns  814673587 ns         16   59.9358k items/s\nBM_Insert/10000000/50000/threads:20    46079329 ns  918171791 ns         20   53.1797k items/s\nBM_Insert/100000000/50000/threads:1   586921614 ns  586878163 ns          1   83.1998k items/s\nBM_Insert/100000000/50000/threads:2   418418581 ns  836669039 ns          2   58.3601k items/s\nBM_Insert/100000000/50000/threads:4   234051581 ns  936066969 ns          4   52.1631k items/s\nBM_Insert/100000000/50000/threads:8   125203020 ns 1001516619 ns          8   48.7542k items/s\nBM_Insert/100000000/50000/threads:16   64886922 ns 1037121993 ns         16   47.0804k items/s\nBM_Insert/100000000/50000/threads:20   53904892 ns 1077886906 ns         20   45.2999k items/s\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnwat%2Fpersistent-rbtree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnwat%2Fpersistent-rbtree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnwat%2Fpersistent-rbtree/lists"}