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]

Reply via email to