HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
microsoft
verona
C++2020–2025
microsoft / verona

verona

Research programming language for concurrent ownership

17Distinct people
20Mentions
0Explicit recommenders
3.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Research programming language for concurrent ownership

GitHub

Where it is used

No documented product use was verified in the last source check.

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 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 10:49:33 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 year20 dated mentions

Observed mentions: 2020-01-16 20:21:45 UTC to 2025-02-10 07:10:07 UTC.

0369122020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 11 mentions; 4 submissions, 7 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

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
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC1147
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC312
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC413
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

11 sources
Verona has been exploring the idea of "behavior-oriented programming" as compared to "actor-oriented" like we have in Pony. Verona's model allows for something along the lines of what is being suggested. How that works out in the long run, we'll see. It's still very early days for Verona. A number of folks working on Pony also are associated with Verona and vice-versa so there's a cross-polination of ideas going on. https://github.com/microsoft/verona In particular see: https://github.com/microsoft/verona/blob/master/docs/explore... and https://github.com/microsoft/verona/blob/master/docs/explore...
In Pony, Actors, Causality, Types, and Garbage Collection
What I find really interesting about Verona is the use of regions, which is related but somewhat different from Rust: https://github.com/microsoft/verona/blob/master/docs/explore... > Verona uses regions, groups of objects, as its fundamental concept of ownership. Rather than specifying object ownership as a reference owns an object, we generalise this a little to a reference can own a region, where a region is a group of objects. Within a region, any object can refer to any other object in that region. There is no restriction on the topology. When the owning reference to a region goes away then the entire region is collected. In Rust, objects referenced by owning pointers form a tree--there is a unique pointer to each object. In Verona, an owning pointer references a sub-graph of the heap that is disjoint except for the path through the
Read the rest
owning pointer. The sub-graph can be reclaimed when the owning pointer goes out of scope. Within the sub-graph, there are no restrictions, so you can have cyclic structures like doubly-linked lists. In Rust, by contrast, having a doubly-linked list requires either raw pointers and unsafe, or some sort of reference-counted pointer. You can use regions to statically enforce the property that other pointers into a region, for example from the stack, cannot outlive the owning pointer for the region (and thus the region itself). Allowing such temporary aliasing of objects potentially eliminates or at least reduces the need for a borrowing mechanism. In Rust, for example, you run into borrowing as soon as you try to iterate over a linked list. If you allow temporary aliasing (and ensure that the iterator pointer cannot outlive the region by restricting its scope to a context where the region is live) you don't need a borrowing concept. Using regions this way addresses one of the vague dissatisfaction I have with Rust, which is you need to introduce borrowing just to iterate over a singly linked list, and you need raw pointers and unsafe, or a special mechanism that uses unsafe under the hood, to have doubly linked lists. On the other hand, this creates problems as well. For example, within a region, you can't delete an object when the pointer to it goes out of scope, because it may be referenced from another object. So while you can always safely reclaim a region when the owning pointer goes out of scope, you can produce unbounded memory use by creating objects within regions. (As far as I can tell, Verona doesn't attempt to address that issue, yet.)
In Project Verona FAQ

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.