Project Name
NativeCollections
License
MIT
Contributor
Molth
Existing OSS Project?
Yes
Source Code URL
https://github.com/Molth/NativeCollections
Project Homepage URL
No response
Project Transfer Signatories
Description
A high-performance, GC-free collection library built on unmanaged memory, designed for game engines and other performance-critical .NET applications that require low overhead and full control over memory behavior — with zero external dependencies.
What are you hoping from the foundation
I hope to leverage the .NET Foundation's marketing and community platforms to increase the visibility of NativeCollections and connect with a broader audience of .NET developers. As a library focused on high‑performance, GC‑free collections built on unmanaged memory, my target users are often those working on game engines, real‑time systems, or other performance‑critical applications – a relatively vertical niche. The Foundation’s ecosystem, including its blog, social channels, and official project listing, can help me reach developers who are actively seeking such specialized tools. I believe that greater exposure will not only grow my user base but also attract more contributors, enabling the project to evolve faster and become a more robust solution for the .NET community.
Name
Molth Nevin
Email
molth_nevin@163.com
GitHub Profile URL
https://github.com/Molth
Committers
Discord Ids
Governance Model
NativeCollections follows a lightweight governance model centered around a single maintainer (Molth Nevin), with an open contribution process for community involvement.
Code Change Process
-
Proposal: All code changes are proposed via GitHub Issues. Bug fixes, performance improvements, and new features are discussed openly in the issue tracker before implementation begins.
-
Implementation: Contributors fork the repository, create a feature branch, and submit a Pull Request (PR) referencing the relevant Issue.
-
Review: Each PR is reviewed by the maintainer. The review focuses on:
- Correctness and thread-safety of unsafe/unmanaged operations
- Performance implications (no unnecessary allocations, minimal overhead)
- API consistency with existing collection types
- Test coverage and documentation
-
Decision: The maintainer makes the final decision to accept, request changes, or reject a PR. Decisions are communicated clearly in the PR comments.
New Committer Appointment
As the project currently has a single maintainer, new committers will be identified based on their sustained contribution quality and engagement with the project. Candidates who demonstrate:
- Consistent delivery of high-quality, well-tested PRs
- Active participation in issue discussions and code reviews
- Deep understanding of the library's architecture and unmanaged memory safety
will be invited to become committers. This process ensures that commit access is granted only to individuals who have earned trust through demonstrated technical competence and community involvement. The decision to appoint a new committer is made by the existing maintainer, with consideration of the candidate's contribution history.
CLA
How does the project check who has signed one?
- Automated check on every PR
CLA Notification Alias
molth_nevin@163.com
Select the Project Transfer Agreement model
Assignment
Repository Layout
No response
Eligibility Criteria
Describe why you are applying for Project Membership.
I am applying for Project Membership in the .NET Foundation to gain access to the resources, support, and community that will help NativeCollections grow into a widely adopted and professionally managed open source project.
Specifically, I hope to benefit from:
-
Project guidance and mentoring: The Foundation offers mentorship on how to best run an open source community. As a solo maintainer, I would greatly value guidance on community building, contribution workflows, and sustainable project governance.
-
IP and legal support: Legal matters can be challenging for individual maintainers. The Foundation's assistance with IP assignments and Contributor License Agreement (CLA) management would streamline the contribution process as the project grows.
-
Marketing and community exposure: The Foundation works with industry leaders to improve project visibility within the .NET community. As a library focused on a specialized niche (high-performance, GC‑free collections on unmanaged memory), reaching the right audience is critical. Foundation membership would help connect NativeCollections with developers actively seeking such tools.
-
Technical services: Access to Authenticode code‑signing for NuGet packages, secure secret storage, and hosting resources would reduce administrative overhead and improve the project's professionalism and security.
-
Influencing the .NET ecosystem: Membership provides a voice in shaping the Foundation's support for open source projects. I am passionate about the .NET platform and want to contribute to its growth beyond just my own project.
Infrastructure Requirements Summary
NativeCollections is a library project with minimal infrastructure requirements. Below is a summary of my needs:
Build Servers
I currently use GitHub Actions for continuous integration and build automation. This setup is sufficient for the project's needs, and I plan to continue using it after joining the Foundation. No additional build server infrastructure is required.
Web Hosting / Service Hosting
The project does not require any web hosting or service hosting. It is a pure library with no website, API, or online service components.
SSL Certificates
No SSL certificates are required, as the project has no web-facing services.
Authenticode Code Signing
Yes, this is a primary need. I would like to utilize the .NET Foundation's Automated Authenticode Code Signing service for NuGet package releases. This will:
- Allow users to install the package without SmartScreen warnings
- Provide assurance that the binary is the one produced by the build server
- Enhance the project's professionalism and security posture
Other Infrastructure Needs
- Secret Management: Access to the Foundation's secure vault for storing NuGet API keys and other credentials would be helpful
- CLA Automation: The Foundation's automated CLA system would streamline the contribution process
Summary
Beyond code signing and basic secret management, NativeCollections has no complex infrastructure requirements. The existing GitHub Actions-based build pipeline will remain the primary CI/CD system.
Additional Notes
Comparison with similar projects
-
UnsafeCollections / XenoAtom.Collections: These libraries provide struct‑based collections backed by managed arrays (or fixed‑size buffers for stack allocation). While they reduce GC pressure, they still rely on managed memory and can incur GC overhead on resizing. NativeCollections uses unmanaged memory exclusively, providing complete control over memory lifetime and zero GC interaction.
-
NullGC.Collections: This project also targets unmanaged memory and offers a similar feature set. However, it bundles a custom unmanaged memory allocator, LINQ provider, and source generator, making it a heavier dependency. NativeCollections focuses solely on collection types with no external dependencies, keeping the library lightweight and easy to integrate into any .NET project.
-
ZeroAlloc.Collections: This library uses ArrayPool<T> and ref struct types to reduce allocations, but its collections are stack‑only (ref struct) and cannot be stored in fields or used across async boundaries. NativeCollections provides heap‑allocated containers (via Unsafe* types) that can be stored in fields, passed between methods, and used in long‑lived scenarios, while still maintaining zero GC pressure.
-
Unity NativeCollections: Unity's NativeCollections is tightly coupled with the Unity ecosystem, requiring the Unity.Collections package and DOTS/Burst compatibility. NativeCollections is a pure .NET library with zero dependencies on Unity or any game engine, making it suitable for any .NET application — including server‑side, game development, and real‑time systems.
Potential issues early on
-
Documentation: As a solo maintainer, creating comprehensive documentation and API reference is time‑consuming. Guidance on structuring documentation and generating API docs would be appreciated.
-
Community building: Growing a contributor base from scratch is challenging. Mentorship on community engagement and contribution workflows would be valuable.
-
Branding: The project name NativeCollections overlaps with Unity's NativeCollections and a few other NuGet packages. I may need guidance on rebranding or clarifying the distinction to avoid confusion.
Project Name
NativeCollections
License
MIT
Contributor
Molth
Existing OSS Project?
Yes
Source Code URL
https://github.com/Molth/NativeCollections
Project Homepage URL
No response
Project Transfer Signatories
Description
A high-performance, GC-free collection library built on unmanaged memory, designed for game engines and other performance-critical .NET applications that require low overhead and full control over memory behavior — with zero external dependencies.
What are you hoping from the foundation
I hope to leverage the .NET Foundation's marketing and community platforms to increase the visibility of NativeCollections and connect with a broader audience of .NET developers. As a library focused on high‑performance, GC‑free collections built on unmanaged memory, my target users are often those working on game engines, real‑time systems, or other performance‑critical applications – a relatively vertical niche. The Foundation’s ecosystem, including its blog, social channels, and official project listing, can help me reach developers who are actively seeking such specialized tools. I believe that greater exposure will not only grow my user base but also attract more contributors, enabling the project to evolve faster and become a more robust solution for the .NET community.
Name
Molth Nevin
Email
molth_nevin@163.com
GitHub Profile URL
https://github.com/Molth
Committers
Discord Ids
Governance Model
NativeCollections follows a lightweight governance model centered around a single maintainer (Molth Nevin), with an open contribution process for community involvement.
Code Change Process
Proposal: All code changes are proposed via GitHub Issues. Bug fixes, performance improvements, and new features are discussed openly in the issue tracker before implementation begins.
Implementation: Contributors fork the repository, create a feature branch, and submit a Pull Request (PR) referencing the relevant Issue.
Review: Each PR is reviewed by the maintainer. The review focuses on:
Decision: The maintainer makes the final decision to accept, request changes, or reject a PR. Decisions are communicated clearly in the PR comments.
New Committer Appointment
As the project currently has a single maintainer, new committers will be identified based on their sustained contribution quality and engagement with the project. Candidates who demonstrate:
will be invited to become committers. This process ensures that commit access is granted only to individuals who have earned trust through demonstrated technical competence and community involvement. The decision to appoint a new committer is made by the existing maintainer, with consideration of the candidate's contribution history.
CLA
How does the project check who has signed one?
CLA Notification Alias
molth_nevin@163.com
Select the Project Transfer Agreement model
Assignment
Repository Layout
No response
Eligibility Criteria
Describe why you are applying for Project Membership.
I am applying for Project Membership in the .NET Foundation to gain access to the resources, support, and community that will help
NativeCollectionsgrow into a widely adopted and professionally managed open source project.Specifically, I hope to benefit from:
Project guidance and mentoring: The Foundation offers mentorship on how to best run an open source community. As a solo maintainer, I would greatly value guidance on community building, contribution workflows, and sustainable project governance.
IP and legal support: Legal matters can be challenging for individual maintainers. The Foundation's assistance with IP assignments and Contributor License Agreement (CLA) management would streamline the contribution process as the project grows.
Marketing and community exposure: The Foundation works with industry leaders to improve project visibility within the .NET community. As a library focused on a specialized niche (high-performance, GC‑free collections on unmanaged memory), reaching the right audience is critical. Foundation membership would help connect
NativeCollectionswith developers actively seeking such tools.Technical services: Access to Authenticode code‑signing for NuGet packages, secure secret storage, and hosting resources would reduce administrative overhead and improve the project's professionalism and security.
Influencing the .NET ecosystem: Membership provides a voice in shaping the Foundation's support for open source projects. I am passionate about the .NET platform and want to contribute to its growth beyond just my own project.
Infrastructure Requirements Summary
NativeCollectionsis a library project with minimal infrastructure requirements. Below is a summary of my needs:Build Servers
I currently use GitHub Actions for continuous integration and build automation. This setup is sufficient for the project's needs, and I plan to continue using it after joining the Foundation. No additional build server infrastructure is required.
Web Hosting / Service Hosting
The project does not require any web hosting or service hosting. It is a pure library with no website, API, or online service components.
SSL Certificates
No SSL certificates are required, as the project has no web-facing services.
Authenticode Code Signing
Yes, this is a primary need. I would like to utilize the .NET Foundation's Automated Authenticode Code Signing service for NuGet package releases. This will:
Other Infrastructure Needs
Summary
Beyond code signing and basic secret management,
NativeCollectionshas no complex infrastructure requirements. The existing GitHub Actions-based build pipeline will remain the primary CI/CD system.Additional Notes
Comparison with similar projects
UnsafeCollections / XenoAtom.Collections: These libraries provide
struct‑based collections backed by managed arrays (or fixed‑size buffers for stack allocation). While they reduce GC pressure, they still rely on managed memory and can incur GC overhead on resizing.NativeCollectionsuses unmanaged memory exclusively, providing complete control over memory lifetime and zero GC interaction.NullGC.Collections: This project also targets unmanaged memory and offers a similar feature set. However, it bundles a custom unmanaged memory allocator, LINQ provider, and source generator, making it a heavier dependency.
NativeCollectionsfocuses solely on collection types with no external dependencies, keeping the library lightweight and easy to integrate into any .NET project.ZeroAlloc.Collections: This library uses
ArrayPool<T>andref structtypes to reduce allocations, but its collections are stack‑only (ref struct) and cannot be stored in fields or used across async boundaries.NativeCollectionsprovides heap‑allocated containers (viaUnsafe*types) that can be stored in fields, passed between methods, and used in long‑lived scenarios, while still maintaining zero GC pressure.Unity NativeCollections: Unity's
NativeCollectionsis tightly coupled with the Unity ecosystem, requiring theUnity.Collectionspackage and DOTS/Burst compatibility.NativeCollectionsis a pure .NET library with zero dependencies on Unity or any game engine, making it suitable for any .NET application — including server‑side, game development, and real‑time systems.Potential issues early on
Documentation: As a solo maintainer, creating comprehensive documentation and API reference is time‑consuming. Guidance on structuring documentation and generating API docs would be appreciated.
Community building: Growing a contributor base from scratch is challenging. Mentorship on community engagement and contribution workflows would be valuable.
Branding: The project name
NativeCollectionsoverlaps with Unity'sNativeCollectionsand a few other NuGet packages. I may need guidance on rebranding or clarifying the distinction to avoid confusion.