chrislusf/gleam

Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 16 minutes ago
Added to GitGenius on September 19th, 2026
Created on August 26th, 2016
Open Issues & Pull Requests: 38 (+0)
GitHub issues: Enabled
Number of forks: 292
Total Stargazers: 3,565 (+0)
Total Subscribers: 135 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 11.4 hours
Mean response time: 39.6 days
90th percentile: 118.3 days
Tracked items: 3

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 708 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Gleam is a distributed map/reduce system written in pure Go that executes directed acyclic graphs of computations across multiple machines or locally.

Gleam addresses the challenge of running large-scale data processing workloads efficiently by implementing a distributed execution engine where computations flow through memory by default, with optional disk persistence. The system defines data processing as a DAG where datasets are vertices and computation steps are edges. User-defined operations can be written in Go, Unix pipe tools, or any streaming programs. The architecture separates concerns across a Driver (the user program defining the flow), a Master (coordinating resource allocation), Agents (running on compute machines), and Executors (the actual processes performing work). Data moves through memory and the network rather than touching disk unless explicitly configured, enabling natural backpressure and stream computation support.

Gleam suits teams building data processing pipelines in Go environments who want to avoid the garbage collection overhead and memory tuning complexity of JVM-based systems. The tool works both as a standalone local processor and as a distributed system, making it appropriate for development workflows that scale from single-machine testing to multi-node deployments without code changes. The memory efficiency comes from running each executor as a separate OS process rather than managing memory within a single runtime, and the master and agent servers themselves consume minimal resources. Go's simpler syntax compared to Scala or Java makes the codebase more accessible to maintain and customize.

The project shows consistent development activity with regular commits addressing bug fixes and feature improvements. The codebase maintains test coverage across the distributed execution pipeline. Documentation is maintained through both inline code documentation and a project wiki. The implementation demonstrates attention to performance optimization, particularly in merging multiple map-reduce steps and managing executor concurrency.