Skip to content

tc39/proposal-first-class-protocols

View on GitHub ↗Related repositories →

a proposal to bring protocol-based interfaces to ECMAScript users

active 2023-08-232026-03-20 (UTC)

Complete coverage26,658 / 26,658 hourly files (100%) · 2 absent upstream2023-08-152026-08-29 (UTC)
Events
261
Pushes
41
Pull requests
3
Issues
41
Stars
31
Forks
2

Activity over time

Daily event counts in the loaded window

Line chart, 941 days from 2023-08-23 to 2026-03-20. Pushes: 41 total, peak 8 in a day. Pull requests: 3 total, peak 2 in a day. Issues: 41 total, peak 11 in a day. Comments: 123 total, peak 38 in a day. Stars: 31 total, peak 5 in a day.

  • Pushes
  • Pull requests
  • Issues
  • Comments
  • Stars

Stars, PRs, issues and forks are under-captured in the later part of this window. GH Archive progressively stopped capturing non-push events during 2026 — −95% or worse by the end of the window. Every series here except Pushes fades for that reason, so a decline above reflects the archive, not this repository. Pushes stay reliable throughout, so read them, and the contributor counts derived from them, as the real signal. Data health has the measurements.

Top contributors

Pushes, PRs, issues, reviews and comments — stars and forks excluded, so this is contribution rather than popularity

ContributorContributionsPushesPRsComments
LeaVerou9226333
michaelficarra7415041
ljharb230021
mlanza10009
bakkot6006
Jamesernator6005
ziadkh02002
bergus1001
samualtnorman1001
rollo-b2c21001
ValorZard1001
justinfagnani1001
nicolo-ribaudo1001

Recent activity

Latest issues, pull requests and releases

  • Issue comment#95samualtnorman2026-03-18 09:36
    Tree-shakeable protocol definitions
  • Issue comment#95ljharb2026-03-17 17:09
    Tree-shakeable protocol definitions
  • Issue comment#91ljharb2026-03-12 15:29
    what's the prototype of a protocol look like?
  • Issue comment#78ljharb2026-03-11 21:17
    Do we need a `satisfies` operator?
  • Issue comment#80michaelficarra2026-03-10 18:18
    What happens with duplicate members?
  • Issue comment#33justinfagnani2026-03-08 00:50
    Relationship with the mixins proposal
  • Issue comment#76ljharb2026-03-07 01:27
    If a provided method already exists, the existing one should win (not error)
  • Issue comment#33ljharb2026-03-07 01:26
    Relationship with the mixins proposal
  • Issue comment#76bakkot2026-03-07 00:52
    If a provided method already exists, the existing one should win (not error)
  • Issue comment#61LeaVerou2026-03-07 00:26
    Can provided members satisfy other protocols?
  • Issue comment#33ljharb2026-03-06 23:50
    Relationship with the mixins proposal
  • Issue comment#76bakkot2026-03-06 23:33
    If a provided method already exists, the existing one should win (not error)
  • Issue comment#61LeaVerou2026-03-06 19:58
    Can provided members satisfy other protocols?
  • Issue#76LeaVerou2026-03-06 16:35
    If a provided method already exists, the existing one should win (not error)
  • Issue comment#66michaelficarra2026-03-05 22:49
    interaction with private names
  • Issue comment#85michaelficarra2026-03-05 22:48
    Protocols should be able to provide plain data properties
  • Issue#63LeaVerou2026-03-03 23:10
    Defer `implemented by`?
  • Issue#63LeaVerou2026-03-03 23:10
    Defer `implemented by`?
  • Issue#60michaelficarra2026-03-03 22:59
    Should protocols be able to implement other protocols? And if so, do we still need `extends`?
  • Issue#50michaelficarra2026-03-03 22:47
    Explicit `requires`/`abstract` keyword?
  • Issue#75LeaVerou2026-03-03 21:51
    Deep protocols: Generalize `static` by supporting provided members on subobjects?
  • Issue comment#81LeaVerou2026-03-03 21:15
    Do sub-protocol members create members on the parent protocol?
  • Issue comment#80ValorZard2026-02-25 06:15
    What happens with duplicate members?
  • Issue#82LeaVerou2026-02-24 23:50
    Protocol representation as object literal
  • Issue#82LeaVerou2026-02-24 23:50
    Protocol representation as object literal

Totals cover only the window loaded into ClickHouse and count events, not GitHub's lifetime totals — 31 stars here means stars gained during the window, not the repo's star count.