dannote

dannote / reach

Public

Program dependence graph for Elixir and Erlang — slicing, data flow, independence, taint analysis, OTP awareness

31
1
100% credibility
Found Apr 16, 2026 at 31 stars -- GitGems finds repos before they trend. Get early access to the next one.
Sign Up Free
AI Analysis
Elixir
AI Summary

Reach builds visual graphs of code dependencies for Elixir and Erlang, enabling analysis of data flow, control flow, taint paths, and code independence.

How It Works

1
🔍 Discover Reach

You hear about Reach, a helpful tool that maps out how different parts of your code connect and flow together, making it easier to spot issues.

2
📦 Add to your project

You simply tell your project to include Reach, like adding a new friend to your team.

3
Map your code

With one easy command, you ask Reach to explore your files and create a visual map of everything.

4
📊 See the magic unfold

An interactive webpage opens showing colorful graphs of your code's paths, branches, and connections – it's like seeing the blueprint of your app come alive.

5
🔎 Dive into the views

Switch between tabs to explore control paths, function calls, or data journeys, zooming and clicking to understand every link.

6
🛡️ Check for risks

Run quick checks to trace user inputs to sensitive spots or find unused code, getting clear reports on what's safe or needs fixing.

Build safer code

You confidently refactor, reorder, or secure your app knowing exactly what depends on what, with no surprises.

Sign up to see the full architecture

5 more

Sign Up Free

Star Growth

See how this repo grew from 31 to 31 stars Sign Up Free
Repurpose This Repo

Repurpose is a Pro feature

Generate ready-to-use prompts for X threads, LinkedIn posts, blog posts, YouTube scripts, and more -- with full repo context baked in.

Unlock Repurpose
AI-Generated Review

What is reach?

Reach generates program dependence graphs for Elixir and Erlang code, capturing data flow, control dependencies, and side effects across functions and modules. Developers trace taint from user params to sinks like System.cmd, slice what affects a statement, or check independence for safe reordering—handling OTP behaviors, concurrency, and BEAM bytecode. Run `mix reach lib/app.ex` for interactive HTML viz of control flow, call graphs, and data chains.

Why is it gaining traction?

Unlike generic analyzers, it's BEAM-native: OTP-aware for GenServer state and ETS deps, interprocedural slicing via program dependence graph and its use in optimization, plus dead code detection. Taint analysis spots unsanitized paths fast; multi-file project graphs link Phoenix routers to controllers. Zero-install dep, offline viz, and sub-300ms perf on big repos hook Elixir teams.

Who should use this?

Elixir backend engineers auditing app security (params to Repo queries), refactoring OTP servers for independence checks, or pruning dead code in monoliths. Phoenix/Oban devs tracing data dependence; static analysis tool builders extending via AST input.

Verdict

Try for program dependence graph pdg slicing and taint in Elixir—docs shine, API is intuitive. 31 stars and 1.0% credibility mean it's raw; validate on toy code before prod pipelines.

(198 words)

Sign up to read the full AI review Sign Up Free

Similar repos coming soon.