Hi, All I'm interested in contributing to this project. Besides its practical value, I think MEA is also a very good project for learning. It is small, focused, and has few dependencies. Each primitive maps to a clear async concept, so it is a great way to help newcomers understand async Rust (Future/Waker/Context, fairness, cancellation, coordination patterns, etc.). I'd be happy to help with documentation. For example: concept-based guides, small examples for each primitive, and maybe some material that can also be used as a teaching resource for async Rust. If the community likes this idea, I'm glad to start from some small, well-scoped doc issues after the podling is set up.
By the way, I also share the concern about the name. "MEA" is a very short and generic as project name. The new meaning "Modular Essentials for Async" helps, but I'd suggest doing the podling name search / trademark review early, so we don't have to rename it later after people already know the name. Thanks! Best regards, mingcheng On Tue, Aug 11, 2026 at 9:46 PM Twice <[email protected]> wrote: > > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
