{"id":21993325,"url":"https://github.com/vmelnikov/growonlyimmutablelist","last_synced_at":"2026-05-04T19:34:04.500Z","repository":{"id":43064918,"uuid":"460005045","full_name":"vmelnikov/GrowOnlyImmutableList","owner":"vmelnikov","description":"Thread safe immutable list with fast add and read operations","archived":false,"fork":false,"pushed_at":"2022-03-25T10:27:11.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T21:05:54.977Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","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/vmelnikov.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":"2022-02-16T12:58:24.000Z","updated_at":"2022-03-19T09:35:53.000Z","dependencies_parsed_at":"2022-09-03T14:52:35.273Z","dependency_job_id":null,"html_url":"https://github.com/vmelnikov/GrowOnlyImmutableList","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmelnikov%2FGrowOnlyImmutableList","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmelnikov%2FGrowOnlyImmutableList/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmelnikov%2FGrowOnlyImmutableList/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmelnikov%2FGrowOnlyImmutableList/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmelnikov","download_url":"https://codeload.github.com/vmelnikov/GrowOnlyImmutableList/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245052649,"owners_count":20553162,"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-11-29T20:16:34.417Z","updated_at":"2026-05-04T19:34:04.458Z","avatar_url":"https://github.com/vmelnikov.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GrowOnlyImmutableList\n\n\n[![NuGet](https://img.shields.io/nuget/v/GrowOnlyImmutableList.svg)](https://www.nuget.org/packages/GrowOnlyImmutableList)\n[![NuGet](https://img.shields.io/nuget/dt/GrowOnlyImmutableList.svg)](https://www.nuget.org/packages/GrowOnlyImmutableList)\n\n\n### GrowOnlyImmutableList\n\nGrowOnlyImmutableList is a thread safe immutable list of objects that can be accessed by index. \nIt is much faster than ImmutableList and ImmutableArray in add operations and it has the same performance as ImmutableArray in read, indexed scenarios.\n\n``` ini\n\nBenchmarkDotNet=v0.13.1, OS=macOS Monterey 12.2.1 (21D62) [Darwin 21.3.0]\nApple M1 2.40GHz, 1 CPU, 8 logical and 8 physical cores\n.NET SDK=6.0.101\n  [Host]     : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT\n  DefaultJob : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT\n\n\n```\n|                         Method |            Mean |         Error |        StdDev |       Gen 0 |       Gen 1 |       Gen 2 |        Allocated |\n|------------------------------- |----------------:|--------------:|--------------:|------------:|------------:|------------:|-----------------:|\n|      GrowOnlyImmutableList_Add |     1,705.44 μs |      2.785 μs |      2.605 μs |   1791.0156 |    203.1250 |    199.2188 |      4,249,302 B |\n|                       List_Add |       301.59 μs |      4.711 μs |      5.236 μs |     99.1211 |     38.0859 |     36.6211 |      1,049,096 B |\n|              ImmutableList_Add |    47,382.58 μs |    340.976 μs |    318.949 μs |  30454.5455 |   1363.6364 |    181.8182 |     82,508,792 B |\n|             ImmutableArray_Add | 5,629,480.73 μs | 59,710.946 μs | 55,853.656 μs | 773000.0000 | 347000.0000 | 347000.0000 | 20,002,728,576 B |\n| GrowOnlyImmutableList_AddRange |       509.50 μs |      1.165 μs |      1.033 μs |    382.8125 |    150.3906 |    132.8125 |      1,450,636 B |\n|                  List_AddRange |       270.35 μs |      5.574 μs |     16.347 μs |     82.7637 |     26.6113 |     24.1699 |      1,020,264 B |\n|         ImmutableList_AddRange |     5,468.67 μs |     20.652 μs |     18.307 μs |   1546.8750 |    617.1875 |    117.1875 |      4,912,838 B |\n|        ImmutableArray_AddRange |     4,720.04 μs |     54.369 μs |     48.196 μs |    781.2500 |    351.5625 |    351.5625 |     20,202,715 B |\n|      GrowOnlyImmutableList_For |        51.40 μs |      0.160 μs |      0.150 μs |           - |           - |           - |                - |\n|                       List_For |        55.91 μs |      0.013 μs |      0.011 μs |           - |           - |           - |                - |\n|              ImmutableList_For |     3,655.11 μs |      0.981 μs |      0.917 μs |           - |           - |           - |              3 B |\n|             ImmutableArray_For |        55.93 μs |      0.231 μs |      0.216 μs |           - |           - |           - |                - |\n|  GrowOnlyImmutableList_Foreach |        60.11 μs |      0.049 μs |      0.045 μs |           - |           - |           - |                - |\n|                   List_Foreach |       191.57 μs |      0.111 μs |      0.099 μs |           - |           - |           - |                - |\n|          ImmutableList_Foreach |     1,086.72 μs |      2.742 μs |      2.564 μs |           - |           - |           - |              2 B |\n|         ImmutableArray_Foreach |        55.12 μs |      0.025 μs |      0.024 μs |           - |           - |           - |                - |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmelnikov%2Fgrowonlyimmutablelist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmelnikov%2Fgrowonlyimmutablelist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmelnikov%2Fgrowonlyimmutablelist/lists"}