# tc39/proposal-record-tuple

ECMAScript proposal for the Record and Tuple value types. | Stage 2: it will change!

Repository: https://github.com/tc39/proposal-record-tuple
Canonical: https://ross.abutalabs.com/products/proposal-record-tuple
Homepage: https://tc39.es/proposal-record-tuple/
Language: HTML
License Family: other
Topics: javascript, tc39, immutable, record, tuple
Archived: true
Last push: 2025-04-15T12:26:26+00:00

## Health v2 (maintenance only)
Score: 10/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 16, release rhythm 35, longevity 100
- inputs: {"age_days": 2708, "days_push": 505, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, archived, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2528, forks 57 (observed 2026-08-28T04:06:58.729629+00:00)

## What it is
A withdrawn TC39 ECMAScript proposal introducing deeply immutable Record and Tuple value types to JavaScript, with spec text, tutorial, and cookbook. The proposal reached Stage 2 but was officially withdrawn, so it is now a historical reference document.

## Use cases
- understand how immutable records and tuples would work in javascript
- research the history of the tc39 record and tuple proposal
- study ecmascript language specification design for value types
- compare built-in immutability against libraries like immutable.js
- learn why deeply immutable data structures were proposed for javascript

## When to choose
- you need the official spec text, tutorial, or cookbook for the Record & Tuple proposal
- you are researching TC39 proposal history or why this proposal was withdrawn
- you want to study language design for immutable compound primitives

## When to avoid
- you want immutable data structures to use in production JavaScript today - use userland libraries like Immutable.js instead
- you expect this to become part of the JavaScript language - it has been withdrawn
- you need a runnable library or polyfill - this repository is a specification document

## Facets
- artifact type: learning-resource
- maturity: abandoned
- function: programming-language, documentation
- domain: programming-languages
- platform: browser
- tags: ecmascript-proposal, immutable-data-structures, tc39, records, tuples, specification, withdrawn, javascript, algorithms, nodejs

## Member repositories
- tc39/proposal-record-tuple (main) score 10

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:58.729629+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:25:23.728576+00:00, confidence not recorded.
  - readme: https://github.com/tc39/proposal-record-tuple (fetched 2026-08-28T04:06:58.729629+00:00, sha 54713ace074a)
  - homepage: https://tc39.es/proposal-record-tuple/ (fetched 2026-08-29T10:07:44.755671+00:00, sha be1fcb32d675)
- Data as of 2026-08-30T08:39:29.467469+00:00.
