# electronicarts/ea-async

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/electronicarts-ea-async).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,418 stars · 141 forks · Java · NOASSERTION

## Links

- GitHub: https://github.com/electronicarts/ea-async
- Homepage: https://go.ea.com/ea-async
- awesome-repositories: https://awesome-repositories.com/repository/electronicarts-ea-async.md

## Topics

`async` `async-await` `asynchronous` `concurrency` `ea-async` `java` `jvm`

## Description

Ea-async is a compilation framework and bytecode instrumentation library for the Java Virtual Machine that transforms compiled class files at build time to enable native asynchronous programming patterns without runtime overhead. It automatically modifies binaries to inject asynchronous execution logic, converting direct asynchronous method bodies into state machines that manage suspension and resumption across non-blocking boundaries.

The library enables developers to coordinate asynchronous operations into readable sequential flows that resemble blocking code without blocking threads, using standard concurrency primitives. It integrates directly into standard build management systems to automate code transformation without requiring manual source modifications, and embeds necessary execution primitives directly into transformed classes to eliminate external library requirements at runtime.

Additional capabilities include development environment instrumentation that applies compile-time modifications directly within integrated development environments to support debugging and navigation of the transformed asynchronous code.

## Tags

### Web Development

- [Build-Time Bytecode Transformers](https://awesome-repositories.com/f/web-development/performance-optimizations/component-update-optimizations/bytecode-compilers/build-time-bytecode-transformers.md) — Transforms compiled class files during the build process to inject asynchronous execution logic automatically.

### Part of an Awesome List

- [Bytecode and Instrumentation](https://awesome-repositories.com/f/awesome-lists/devtools/bytecode-and-instrumentation.md) — Modifies compiled class files and bytecode during the compilation phase to strip out unnecessary framework dependencies and enable native asynchronous execution. ([source](https://github.com/electronicarts/ea-async/blob/master/maven-plugin))

### Business & Productivity Software

- [Sequential](https://awesome-repositories.com/f/business-productivity-software/asynchronous-workflows/sequential.md) — Coordinates asynchronous operations into a readable sequential flow that resembles blocking code without blocking threads. ([source](https://github.com/electronicarts/ea-async#readme))

### Programming Languages & Runtimes

- [Asynchronous Programming](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-programming.md) — Supports writing non-blocking asynchronous workflows in JVM languages using a readable sequential style that resembles blocking code.
- [Offline Bytecode Instrumentation](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/offline-bytecode-instrumentation.md) — Injects asynchronous execution logic directly into compiled classes during the build process without touching source files. ([source](https://github.com/electronicarts/ea-async/tree/master/maven-plugin))
- [Java Concurrency Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/java-concurrency-frameworks.md) — Provides a concurrency framework for the Java Virtual Machine that supports sequential asynchronous workflows using standard non-blocking primitives.
- [Build-Time Instrumentation Toolkits](https://awesome-repositories.com/f/programming-languages-runtimes/jvm-instrumentation-toolkits/build-time-instrumentation-toolkits.md) — Transforms compiled JVM bytecode at build time to enable native async-await programming patterns without runtime overhead.

### Software Engineering & Architecture

- [Asynchronous Execution State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/lightweight-state-machines/asynchronous-execution-state-machines.md) — Converts direct asynchronous method bodies into state machines that manage suspension and resumption across non-blocking boundaries.
- [Asynchronous Operation Execution](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-operation-execution.md) — Executes non-blocking tasks asynchronously and allows writing code in a sequential style using standard concurrency primitives. ([source](https://github.com/electronicarts/ea-async/custom-properties))
- [Zero-Dependency Libraries](https://awesome-repositories.com/f/software-engineering-architecture/zero-dependency-libraries.md) — Embeds necessary execution primitives directly into transformed classes to eliminate external library requirements at runtime.

### Development Tools & Productivity

- [Build Plugin Architectures](https://awesome-repositories.com/f/development-tools-productivity/build-plugin-architectures.md) — Integrates directly into standard build management systems to automate code transformation without manual source modifications.
- [Build Tool Integrations](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/build-task-automation/build-tool-integrations.md) — Connects asynchronous compilation steps directly into standard build management systems to automate code transformation. ([source](https://github.com/electronicarts/ea-async/blob/master/TODO.md))
