Hi IPMC, I would like to propose Asyncband [1] as a new Apache Incubator project, you can find the proposal of Asyncband [2] for more details.
The project was previously named MEA and was discussed in an Incubator thread [3]. Based on community feedback, we decided to rename the project Asyncband because MEA was too short and could be ambiguous in some languages. I'm acting as the champion, and we currently have 4 mentors (including me). Full proposal inlined below for easy reading. [1] https://github.com/fast/mea [2] https://cwiki.apache.org/confluence/spaces/INCUBATOR/pages/446071349/Asyncband+Proposal [3] https://lists.apache.org/thread/5pb2rtzjmn1rzchfglokslgwwg293o47 Best regards, Twice ------------------------------------------------------------------------- Abstract Asyncband is a runtime-agnostic Rust library of composable synchronization, coordination, channel, and concurrency-control primitives for asynchronous applications. Proposal Asyncband 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. Asyncband is intended to be a focused, commons-style foundation for async synchronization and coordination in Rust rather than another async runtime. Background Asyncband 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 was previously named MEA and 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. Asyncband 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 Asyncband 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, Asyncband expects to ensure its neutrality and further encourage and facilitate the adoption of Asyncband 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 Asyncband and own different modules. - Wider adoption: Asyncband 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 Asyncband 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 Asyncband 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 Asyncband 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. Asyncband can provide shared async coordination infrastructure for Apache projects where appropriate while remaining useful to the wider Rust community. Known Risks Project Name This project was previously named MEA, which stands for “Modular Essentials for Async”. During previous discussions at the Apache Incubator, we realized that MEA might be too short and ambiguous in some languages, so it was renamed Asyncband. Orphan Products Asyncband 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 Asyncband 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 Asyncband 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 Asyncband and uses it throughout its Rust implementation. - prek depends on Asyncband and is used in Apache Airflow’s development workflows, creating an indirect relationship with Apache Airflow. - Asyncband 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 Asyncband is hosted at https://docs.rs/mea. If the proposal is accepted, the community may establish a project website at asyncband.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 - https://gitbox.apache.org/asf/repos/asyncband - https://github.com/apache/asyncband 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]
