explaingit

electronicarts/eastl

9,232C++Audience · developerComplexity · 2/5Setup · easy

TLDR

A high-performance C++ library from Electronic Arts that replaces the standard template library for game development, with containers and algorithms tuned for consoles, embedded hardware, and predictable memory use.

Mindmap

mindmap
  root((EASTL))
    What it does
      C++ containers
      Algorithms
      Performance control
      Memory tuning
    Tech stack
      C++11 to C++20
      Conan package manager
      vcpkg
    Use cases
      Game engine dev
      Console optimization
      Embedded systems
    Audience
      C++ game developers
      Engine engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace std::vector and std::map with EASTL equivalents in a game engine to reduce memory allocation overhead.

USE CASE 2

Integrate EASTL into a CMake project via vcpkg or Conan for performance-tuned data structures on console targets.

USE CASE 3

Use EASTL's fixed-size containers in a real-time game loop to avoid dynamic allocation and achieve predictable frame times.

Tech stack

C++Conanvcpkg

Getting it running

Difficulty · easy Time to first run · 30min

Integrate via Conan or vcpkg, familiarity with C++ template libraries and custom allocators is recommended.

License terms not described in the explanation, check the repository directly.

In plain English

EASTL is a C++ programming library created by Electronic Arts for use in professional game development. It provides containers (such as lists, maps, and vectors), algorithms, and related utilities for C++ programs, similar to the standard library that ships with most C++ compilers. The key difference is that EASTL was built specifically for situations where performance matters more than anything else. The C++ standard library that comes with compilers is general-purpose and works well for most software. Game development, however, often demands predictable memory use, fast iteration, and avoidance of default behaviors that can be inefficient on game consoles and embedded hardware. EASTL was designed to address those concerns, with choices about memory allocation and data layout tuned for high-performance interactive applications. The library was originally written by a single engineer at EA and maintained internally for years before being released as open source. It has been used in EA's Frostbite game engine, which is the technology behind many major EA titles. The library supports modern C++ standards from C++11 through C++20 and works across multiple platforms including consoles, servers, and embedded systems. For C++ developers already familiar with the standard template library, EASTL uses a similar interface, so switching to it does not require learning an entirely new API style. Installation is available through popular C++ package managers including Conan and vcpkg. The README is brief and points to a separate introduction document for technical depth. The library has been maintained by a rotating group of EA engineers since its creation, with current maintenance in the hands of two contributors since around 2022.

Copy-paste prompts

Prompt 1
Show me how to replace std::vector with eastl::vector in a C++ game loop, including the custom allocator setup.
Prompt 2
How do I integrate EASTL into a CMake project using vcpkg? Show me the CMakeLists.txt changes needed.
Prompt 3
Write a C++ example using EASTL's fixed_hash_map for a game entity lookup table with zero heap allocations per frame.
Prompt 4
What are the main differences between EASTL string and std::string when targeting game consoles?
Prompt 5
How do I install EASTL via Conan and link it to an existing game project?
Open on GitHub → Explain another repo

← electronicarts on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.