Hi IPMC, I would like to propose MEA [1] as a new Apache Incubator project, you can find the proposal of MEA [2] for more details.
I'm acting as the champion, and we currently have 4 mentors (including me). The proposal was updated based on the previous discussion [3]. We kept MEA as the project name, but reinterpreted it as 'Modular Essentials for Async.' [1] https://github.com/fast/mea [2] https://cwiki.apache.org/confluence/spaces/INCUBATOR/pages/446071349/MEA+Proposal [3] https://lists.apache.org/thread/4gbqnmw15743r55m68q698lj2g2vzyvo Full proposal inlined below for easy reading. Best regards, Twice ------------------------------------------------------------ Abstract MEA is a runtime-agnostic Rust library of composable synchronization, coordination, channel, and concurrency-control primitives for asynchronous applications. Proposal MEA provides reusable building blocks for asynchronous Rust programs without coupling applications or libraries to a particular async runtime. Its primitives interoperate through Rust’s standard Future, Context, and Waker interfaces and can therefore be used with Tokio, async-std, or other executors. The proposed project scope includes: - Synchronization primitives such as Mutex, RwLock, Semaphore, Barrier, Condvar, Latch, WaitGroup, Once, OnceCell, and OnceMap. - Communication primitives such as one-shot, bounded and unbounded MPSC, and broadcast channels with different delivery and overflow strategies. - Composed coordination utilities such as graceful shutdown signaling. - Concurrency-control utilities such as admission control and duplicate-call suppression. The following areas are intentionally outside the project’s scope: - I/O reactors or proactors for filesystems, networking, signals, timers, or similar facilities. - Task schedulers or complete async runtimes. - General-purpose Future or Stream combinator libraries already covered by the Rust futures ecosystem. MEA is intended to be a focused, commons-style foundation for async synchronization and coordination in Rust rather than another async runtime. Background MEA was started by Zili Chen (tison) in October 2024 and has been developed publicly on GitHub under the Apache License, Version 2.0. The project publishes the mea crate on crates.io and versioned API documentation on docs.rs. Right now, we have four active contributors and the crate has been downloaded more than 5M times. Rationale Async Rust libraries frequently need synchronization and coordination facilities even when they do not want to impose a particular runtime on downstream applications. Runtime-specific primitive implementations can introduce otherwise unnecessary coupling, while repeatedly implementing low-level concurrency machinery increases correctness and maintenance risks. MEA addresses this gap with a coherent set of executor-independent primitives and a deliberately small runtime dependency surface. It gives libraries a shared implementation for common concurrency behavior while allowing applications to choose their executor. Moving MEA to the ASF would establish durable, vendor-neutral ownership and a transparent, merit-based governance model. It would also create a neutral place for users of different runtimes and downstream projects to collaborate on correctness, API design, performance, documentation, and new primitives within a well-defined scope. Initial Goals By transferring ownership of the project to the ASF, MEA expects to ensure its neutrality and further encourage and facilitate the adoption of MEA by the community. Some of the areas we would like to focus on during the Apache incubation phase include: - A healthier community: More contributors could be able to participate in MEA and own different modules. - Wider adoption: MEA can be adopted by more Rust projects, which in turn drives its own functionality. - Strengthening correctness evidence through cross-runtime integration tests, stress and property testing, and targeted model checking. - Establishing reproducible benchmarks and improving performance without compromising safety, fairness, or API clarity. Current Status Meritocracy MEA has been developed through public GitHub issues and pull requests. Contributors receive credit through the repository history and release notes, but project ownership and release authority are currently concentrated in the founding maintainer, and no formal committer-governance model exists yet. The initial community intends to adopt the Apache Way. Technical and governance decisions will be made transparently on ASF-managed channels, contributions of code and non-code work will be evaluated on merit, and contributors who demonstrate sustained positive participation will be invited to become committers and PPMC members. Community Contributors: 9 Users: - Apache OpenDAL - Prek - Foyer - ScopeDB - ... and more on https://crates.io/crates/mea/reverse_dependencies The donation discussion is public at https://github.com/fast/mea/issues/140. Core Developers The current core developers have experience with Rust, asynchronous systems, and public open-source collaboration. Zili Chen is an ASF Member and IPMC member with experience mentoring incubating projects. Yunze Xu is an Apache Pulsar PMC member. Dian Luo and Haixu Ouyang have contributed to the implementation, documentation, testing, and maintenance of MEA and related projects in the fast GitHub organization. This gives the initial group some ASF experience, but not every core developer is familiar with ASF release, governance, and communication practices. The Mentors will help the whole community learn and consistently apply those practices. Alignment MEA is already licensed under Apache-2.0, is developed in public, and is directly used by Apache OpenDAL. Its purpose as reusable, vendor-neutral infrastructure aligns with the ASF’s emphasis on community-led development and long-term stewardship. The ASF hosts a growing set of Rust projects and Rust components, including Apache OpenDAL, Apache DataFusion, and parts of Apache Arrow. MEA can provide shared async coordination infrastructure for Apache projects where appropriate while remaining useful to the wider Rust community. Known Risks Project Name “MEA” is a short and generic acronym. The current community proposes that it mean “Modular Essentials for Async” and prefers to retain the existing crates.io name, but a formal ASF podling name search and trademark review have not yet been completed. The community will complete that review and address any material conflict before the name is finalized. Orphan Products MEA is a small library whose maintenance has so far been led primarily by one person, so loss of interest by the founding maintainer is a real risk. Existing downstream adoption and the commitment of four active contributors reduce the immediate risk, but they do not eliminate it. The central incubation goal is to distribute ownership across a larger group of committers and downstream stakeholders. Transparent governance, documented maintenance practices, and ASF-controlled project assets will make continuation less dependent on any one individual. Inexperience with Open Source MEA has been developed openly on GitHub since its inception, and all initial committers have participated in public open-source workflows. Zili Chen and Yunze Xu have substantial ASF experience, while other initial committers are newer to ASF governance, mailing-list-based decision-making, release voting, and policy requirements. The project will rely on its Mentors and experienced initial committers to teach these practices and ensure that knowledge is shared rather than concentrated. Length of Incubation Expect to enter incubation in two months and graduate in about two years. Homogenous Developers The initial active developers are geographically concentrated in China and share overlapping professional interests in Rust infrastructure. They are not all employed by the same organization, but the current group is still too small and homogeneous for a sustainable Apache community. The project will actively recruit contributors through downstream users, Rust runtime communities, ASF Rust projects, documentation work, testing initiatives, and well-scoped issues suitable for new participants. Reliance on Salaried Developers MEA is not known to depend on a development team funded by a single employer. The more significant risk is concentration of maintenance work in the founding maintainer, regardless of whether that work is salaried or voluntary. The project will mitigate this risk by sharing release, review, triage, and technical ownership among multiple committers and by recognizing sustained non-code contributions as well as code contributions. Relationships with Other Apache Products - Apache OpenDAL directly depends on MEA and uses it throughout its Rust implementation. - prek depends on MEA and is used in Apache Airflow’s development workflows, creating an indirect relationship with Apache Airflow. - MEA may be useful to other ASF Rust projects that need executor-independent synchronization or coordination, but no project will be expected to adopt it merely because it is hosted by the ASF. An Excessive Fascination with the Apache Brand The proposal is motivated by neutral ownership, durable infrastructure, transparent governance, and community growth rather than by endorsement or marketing value. The initial community understands that the Apache name does not guarantee adoption and that incubation requires sustained work on releases, policy compliance, and community development. Documentation The API documentation of MEA is hosted at https://docs.rs/mea. If the proposal is accepted, the community may establish a project website at mea.apache.org; docs.rs will continue to host API documentation for published crate versions. Initial Source The project currently holds a GitHub repository and a Cargo crate: - https://github.com/fast/mea - https://crates.io/crates/mea The crate will retain its name, while the repository will be moved to the Apache org. Source and Intellectual Property Submission Plan External Dependencies The published crate currently has one direct runtime dependency: MIT - slab 0.4.12 (It is planned to be removed) Cryptography N/A Required Resources Mailing Lists - [email protected] - [email protected] - [email protected] - [email protected] - [email protected] Subversion Directory N/A Git Repositories >From https://github.com/fast/mea To https://gitbox.apache.org/asf/repos/mea https://github.com/apache/mea Issue Tracking The community would like to continue using GitHub Issues. Other Resources The community has already chosen GitHub Actions as continuous integration tools. Initial Committers - tison [[email protected]] - Dian Luo [[email protected]] - Yunze Xu [[email protected]] - Haixu Ouyang [[email protected]] Sponsors Champion - Mingyang Liu [[email protected]] Nominated Mentors - tison [[email protected]] - Hao Ding [[email protected]] - Jean-Baptiste Onofré [[email protected]] - Mingyang Liu [[email protected]] Sponsor Entity The Incubator --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
