HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cmu-pasta
fray
Kotlin2025–2025
cmu-pasta / fray

fray

A controlled concurrency testing framework for the JVM

3Distinct people
7Mentions
0Explicit recommenders
498GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A controlled concurrency testing framework for the JVM

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week7 dated mentions

Observed mentions: 2025-02-18 16:11:24 UTC to 2025-06-08 06:21:42 UTC. Weeks start Monday, UTC.

01232025-02-17 00:00:00 UTC to 2025-02-24 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 commentsFeb 172025-02-24 00:00:00 UTC to 2025-03-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-03 00:00:00 UTC to 2025-03-10 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-03-10 00:00:00 UTC to 2025-03-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-17 00:00:00 UTC to 2025-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-24 00:00:00 UTC to 2025-03-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-31 00:00:00 UTC to 2025-04-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-07 00:00:00 UTC to 2025-04-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 72025-04-14 00:00:00 UTC to 2025-04-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-21 00:00:00 UTC to 2025-04-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-28 00:00:00 UTC to 2025-05-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-05 00:00:00 UTC to 2025-05-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-12 00:00:00 UTC to 2025-05-19 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-05-19 00:00:00 UTC to 2025-05-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-26 00:00:00 UTC to 2025-06-02 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-06-02 00:00:00 UTC to 2025-06-09 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJun 2

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 172025-02-17 00:00:00 UTC2025-02-24 00:00:00 UTC312
Feb 242025-02-24 00:00:00 UTC2025-03-03 00:00:00 UTC000
Mar 32025-03-03 00:00:00 UTC2025-03-10 00:00:00 UTC101
Mar 102025-03-10 00:00:00 UTC2025-03-17 00:00:00 UTC000
Mar 172025-03-17 00:00:00 UTC2025-03-24 00:00:00 UTC000
Mar 242025-03-24 00:00:00 UTC2025-03-31 00:00:00 UTC000
Mar 312025-03-31 00:00:00 UTC2025-04-07 00:00:00 UTC000
Apr 72025-04-07 00:00:00 UTC2025-04-14 00:00:00 UTC000
Apr 142025-04-14 00:00:00 UTC2025-04-21 00:00:00 UTC000
Apr 212025-04-21 00:00:00 UTC2025-04-28 00:00:00 UTC000
Apr 282025-04-28 00:00:00 UTC2025-05-05 00:00:00 UTC000
May 52025-05-05 00:00:00 UTC2025-05-12 00:00:00 UTC000
May 122025-05-12 00:00:00 UTC2025-05-19 00:00:00 UTC101
May 192025-05-19 00:00:00 UTC2025-05-26 00:00:00 UTC000
May 262025-05-26 00:00:00 UTC2025-06-02 00:00:00 UTC101
Jun 22025-06-02 00:00:00 UTC2025-06-09 00:00:00 UTC110

What Hacker News says

7 sources
My current thinking on model checking (still evolving): Modeling languages are useful to check the correctness of an algorithm during development. During development, a model can also serve as a specification for the actual implementation. This requires that your the modeling language is readable to a broad range of developers, which TLA+ is not. We have been experimenting with FizzBee (fizzbee.io) which looks promising in this regards. When you go to prod, you really want to test your actual implementation, not a model of it. For this you want something like https://github.com/awslabs/shuttle (for Rust), or https://github.com/cmu-pasta/fray (for Java). Or use something custom.
In The current state of TLA⁺ development
Using Fray does not require knowledge about "deterministic testing" or "controlled concurrency." This is one of its goals: developers write normal concurrency tests, and Fray controls the execution behind the scenes. In fact, when we evaluate Fray, we collect all existing concurrency tests from Lucene, Kafka, and Guava, and running them under different thread inter-leavings can already reveal so many bugs. [1] [1]: https://github.com/cmu-pasta/fray/blob/main/docs/bugs.md
In Concurrency bugs in Lucene: How to fix optimistic concurrency failures
I’m the author of Fray, a concurrency testing framework for the JVM, and I’m excited to finally share what I’ve been building over the past few years! Fray[1] is a concurrency testing tool for Java that can help you find and debug tricky race conditions that manifest as assertion violations, run-time exceptions, or deadlocks. I’d love to hear your thoughts—feel free to ask me anything! And if you’re curious, give Fray a try. [1]: https://github.com/cmu-pasta/fray
In Concurrency bugs in Lucene: How to fix optimistic concurrency failures
aoli-al·Feb 18, 2025Submission

Show HN: Fray: A controlled concurrency testing framework for the JVM

Hi HN, I’m excited to share Fray, a controlled concurrency testing framework for the JVM. Fray systematically explores different thread interleavings in your concurrency tests, helping to uncover tricky race conditions. It can also deterministically reproduce concurrency-related failures, making debugging significantly easier. For a deep dive into how Fray is designed, check out our technical report: https://arxiv.org/abs/2501.12618 The Lucene team recently wrote about how Fray helped them diagnose and fix a challenging concurrency bug: https://www.elastic.co/search-labs/blog/optimistic-concurren... Would love to hear your thoughts and feedback!
4 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.