Skip to content
VeradictusPublic

About

Website responsible for keeping track of decompilation projects.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ByteMatch

Progress tracking for matching decompilation projects, live at bytematch.dev.

ByteMatch reads the objdiff report your CI already builds, keeps its history, shows every unit on a grid, draws badges, and comments on pull requests.

[![Code](https://bytematch.dev/OWNER/REPO.svg?mode=shield&label=Code&measure=matched_code_percent)](https://bytematch.dev/OWNER/REPO)

Why

decomp.dev was the community's progress site, and it did a great deal for decompilation projects. Thank you to encounter for building and running it. It is being sunset: new projects can no longer register, and existing pages stay up for now.

ByteMatch replaces it. It is a clean-room implementation and contains no decomp.dev code. It serves the same public URLs (/{owner}/{repo}.json, .svg, .png, the same query parameters), so a project switches by changing the domain and keeps its history with a one-click import.

Features

  • No CI changes for projects that already upload <VERSION>_report artifacts (the dtk-template convention). Reports are read from successful runs on the default branch.
  • Project pages: one line of progress, then a grid of every unit (area = code size, filled green by how much matches). Filter it like camera <70% >10kb; click a unit for its functions. History, categories, the unit list, commits and badges are a click away.
  • Badges in SVG and PNG, drawn by ByteMatch itself, plus shields.io endpoint JSON.
  • JSON API compatible with decomp.dev: project, history, measures and full reports.
  • Pull request comments through a GitHub App: newly matched functions, regressions, measure changes. Webhooks also make new runs show up at once.
  • Upload API with per-project tokens, for CI outside GitHub Actions.
  • History you keep: import it from decomp.dev while it still serves it, upload saved history files, and download any project's history in the same format.
  • Games, franchises and activity: projects naming the same game share a page with a combined progress chart, games group into franchises, and an activity feed shows milestones (first past 50%, 90%, a full match) and the week's biggest gains.
  • Self-hostable: Next.js, PostgreSQL and a background worker. No Redis. Runs with pm2 or containers.

For project maintainers

  1. On bytematch.dev, sign in with GitHub, open Manage and Add project. You need admin rights on the repository.
  2. Make sure CI uploads objdiff's report.json as an artifact named <VERSION>_report. dtk-template projects already do.
  3. Swap decomp.dev for bytematch.dev in your README badges and run Import from decomp.dev on the project's Manage page.

Details: Getting started and Migrating from decomp.dev.

Running your own instance

Requires Node 24, Yarn 4 and PostgreSQL 15 or newer.

git clone https://github.com/Veradictus/ByteMatch.git && cd ByteMatch
cp .env.example .env     # set PUBLIC_URL, SECRET_KEY and the GitHub App settings
yarn install --immutable
yarn build
yarn db:migrate
yarn pm2:start           # bytematch-web on 0.0.0.0:5000, and bytematch-worker

Or with containers: docker compose --profile app up -d --build. Put nginx or Caddy with TLS in front. See Self-hosting and the GitHub App guide.

Documentation

Document For
Getting started Maintainers: registering, CI artifacts, badges, PR comments
Migrating from decomp.dev Maintainers: moving badges, links and history
API Every public URL, parameter and JSON shape; the upload API
GitHub App Operators: creating and configuring the App
Self-hosting Operators: configuration, pm2, containers, nginx, upgrades
Architecture Processes, data model, ingest flow, job queue
Contributing Development setup, tests, code style, Conventional Commits

Contributing

See CONTRIBUTING.md. Work happens on master. Commits follow Conventional Commits (feat(api): …, fix: …, docs: …), one logical change each, and yarn check must pass. Never copy decomp.dev code.

Credits

  • objdiff (MIT OR Apache-2.0) produces the reports. ByteMatch vendors its report.proto and changes.proto (src/report/proto/, with LICENSE-MIT.objdiff) and follows its report parsing and migration rules.
  • DejaVu Sans (src/assets/fonts/, Bitstream Vera license) draws the badges.
  • decomp.dev, for showing what a progress site for this community should be.

License

GPL-3.0. Vendored third-party files keep their own licenses.

About

Website responsible for keeping track of decompilation projects.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages