{"id":13461293,"url":"https://github.com/carbon-language/carbon-lang","last_synced_at":"2026-05-02T05:14:20.220Z","repository":{"id":46733275,"uuid":"259463685","full_name":"carbon-language/carbon-lang","owner":"carbon-language","description":"Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)","archived":false,"fork":false,"pushed_at":"2026-04-03T00:20:13.000Z","size":100126,"stargazers_count":33663,"open_issues_count":214,"forks_count":1533,"subscribers_count":361,"default_branch":"trunk","last_synced_at":"2026-04-03T00:39:46.775Z","etag":null,"topics":["carbon-lang","compiler","cpp","experimental","experimental-language","language","programming-language"],"latest_commit_sha":null,"homepage":"http://docs.carbon-lang.dev/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carbon-language.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2020-04-27T21:45:16.000Z","updated_at":"2026-04-03T00:11:04.000Z","dependencies_parsed_at":"2025-12-29T13:09:36.781Z","dependency_job_id":null,"html_url":"https://github.com/carbon-language/carbon-lang","commit_stats":null,"previous_names":[],"tags_count":634,"template":false,"template_full_name":null,"purl":"pkg:github/carbon-language/carbon-lang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbon-language%2Fcarbon-lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbon-language%2Fcarbon-lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbon-language%2Fcarbon-lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbon-language%2Fcarbon-lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carbon-language","download_url":"https://codeload.github.com/carbon-language/carbon-lang/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbon-language%2Fcarbon-lang/sbom","scorecard":{"id":113926,"data":{"date":"2025-08-11","repo":{"name":"github.com/carbon-language/carbon-lang","commit":"52972ea83d192b3829ae91ca259ba1ec88fb9253"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":7,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/clang_tidy.yaml:14","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/clang_tidy.yaml:15","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/clangd_tidy.yaml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/clangd_tidy.yaml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/discord_wiki.yaml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/gh_pages_ci.yaml:17","Info: topLevel 'contents' permission set to 'read': .github/workflows/gh_pages_deploy.yaml:23","Warn: topLevel 'contents' permission set to 'write': .github/workflows/nightly_release.yaml:33","Info: topLevel 'contents' permission set to 'read': .github/workflows/pre_commit.yaml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/pre_commit_suggestions.yaml:24","Info: topLevel 'contents' permission set to 'read': .github/workflows/sync_repos.yaml:21","Info: topLevel 'contents' permission set to 'read': .github/workflows/tests.yaml:14","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/tests.yaml:15","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.0.0-0.nightly.2025.08.13 not signed: https://api.github.com/repos/carbon-language/carbon-lang/releases/239534704","Warn: release artifact v0.0.0-0.nightly.2025.08.12 not signed: https://api.github.com/repos/carbon-language/carbon-lang/releases/239227208","Warn: release artifact v0.0.0-0.nightly.2025.08.11 not signed: https://api.github.com/repos/carbon-language/carbon-lang/releases/238889819","Warn: release artifact v0.0.0-0.nightly.2025.08.10 not signed: https://api.github.com/repos/carbon-language/carbon-lang/releases/238818479","Warn: release artifact v0.0.0-0.nightly.2025.08.09 not signed: https://api.github.com/repos/carbon-language/carbon-lang/releases/238740383","Warn: release artifact v0.0.0-0.nightly.2025.08.13 does not have provenance: https://api.github.com/repos/carbon-language/carbon-lang/releases/239534704","Warn: release artifact v0.0.0-0.nightly.2025.08.12 does not have provenance: https://api.github.com/repos/carbon-language/carbon-lang/releases/239227208","Warn: release artifact v0.0.0-0.nightly.2025.08.11 does not have provenance: https://api.github.com/repos/carbon-language/carbon-lang/releases/238889819","Warn: release artifact v0.0.0-0.nightly.2025.08.10 does not have provenance: https://api.github.com/repos/carbon-language/carbon-lang/releases/238818479","Warn: release artifact v0.0.0-0.nightly.2025.08.09 does not have provenance: https://api.github.com/repos/carbon-language/carbon-lang/releases/238740383"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: CppLibFuzzer integration found: toolchain/check/check_fuzzer.cpp:25","Info: CppLibFuzzer integration found: toolchain/driver/driver_fuzzer.cpp:40","Info: CppLibFuzzer integration found: toolchain/lex/numeric_literal_fuzzer.cpp:15","Info: CppLibFuzzer integration found: toolchain/lex/string_literal_fuzzer.cpp:16","Info: CppLibFuzzer integration found: toolchain/lex/tokenized_buffer_fuzzer.cpp:17","Info: CppLibFuzzer integration found: toolchain/parse/parse_fuzzer.cpp:18"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: pipCommand not pinned by hash: .github/workflows/clangd_tidy.yaml:73","Info:  16 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:  27 out of  27 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 1 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T21:44:25.470Z","repository_id":46733275,"created_at":"2025-08-15T21:44:25.470Z","updated_at":"2025-08-15T21:44:25.470Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31586412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["carbon-lang","compiler","cpp","experimental","experimental-language","language","programming-language"],"created_at":"2024-07-31T11:00:32.806Z","updated_at":"2026-04-09T05:02:48.241Z","avatar_url":"https://github.com/carbon-language.png","language":"C++","funding_links":[],"categories":["C++","Uncategorized","C/C++ 程序设计","programming-language"],"sub_categories":["Uncategorized","网络服务_其他"],"readme":"# Carbon Language: \u003cbr/\u003e An experimental successor to C++\n\n\u003c!--\nPart of the Carbon Language project, under the Apache License v2.0 with LLVM\nExceptions. See /LICENSE for license information.\nSPDX-License-Identifier: Apache-2.0 WITH LLVM-exception\n--\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#why-build-carbon\"\u003eWhy?\u003c/a\u003e |\n  \u003ca href=\"#language-goals\"\u003eGoals\u003c/a\u003e |\n  \u003ca href=\"#project-status\"\u003eStatus\u003c/a\u003e |\n  \u003ca href=\"#getting-started\"\u003eGetting started\u003c/a\u003e |\n  \u003ca href=\"#join-us\"\u003eJoin us\u003c/a\u003e\n\u003c/p\u003e\n\n**See our [announcement video](https://youtu.be/omrY53kbVoA) from\n[CppNorth](https://cppnorth.ca/).** Note that Carbon is\n[not ready for use](#project-status).\n\n\u003ca href=\"docs/images/snippets.md#quicksort\"\u003e\n\u003c!--\nEdit snippet in docs/images/snippets.md and:\nhttps://drive.google.com/drive/folders/1QrBXiy_X74YsOueeC0IYlgyolWIhvusB\n--\u003e\n\u003cimg src=\"docs/images/quicksort_snippet.svg\" align=\"right\" width=\"575\"\n     alt=\"Quicksort code in Carbon. Follow the link to read more.\"\u003e\n\u003c/a\u003e\n\n\u003c!--\nDon't let the text wrap too narrowly to the left of the above image.\nThe `div` reduces the vertical height. The `picture` prevents autolinking.\n--\u003e\n\u003cdiv\u003e\u003cpicture\u003e\u003cimg src=\"docs/images/bumper.png\" alt=\"\"\u003e\u003c/picture\u003e\u003c/div\u003e\n\n**Fast and works with C++**\n\n-   Performance matching C++ using LLVM, with low-level access to bits and\n    addresses\n-   Interoperate with your existing C++ code, from inheritance to templates\n-   Fast and scalable builds that work with your existing C++ build systems\n\n**Modern and evolving**\n\n-   Solid language foundations that are easy to learn, especially if you have\n    used C++\n-   Easy, tool-based upgrades between Carbon versions\n-   Safer fundamentals, and an incremental path towards a memory-safe subset\n\n**Welcoming open-source community**\n\n-   Clear goals and priorities with robust governance\n-   Community that works to be welcoming, inclusive, and friendly\n-   Batteries-included approach: compiler, libraries, docs, tools, package\n    manager, and more\n\n## Why build Carbon?\n\nC++ remains the dominant programming language for performance-critical software,\nwith massive and growing codebases and investments. However, it is struggling to\nimprove and meet developers' needs, as outlined above, in no small part due to\naccumulating decades of technical debt. Incrementally improving C++ is\n[extremely difficult](/docs/project/difficulties_improving_cpp.md), both due to\nthe technical debt itself and challenges with its evolution process. The best\nway to address these problems is to avoid inheriting the legacy of C or C++\ndirectly, and instead start with solid language foundations like\n[modern generics system](#generics), modular code organization, and consistent,\nsimple syntax.\n\nExisting modern languages already provide an excellent developer experience: Go,\nSwift, Kotlin, Rust, and many more. **Developers that _can_ use one of these\nexisting languages _should_.** Unfortunately, the designs of these languages\npresent significant barriers to adoption and migration from C++. These barriers\nrange from changes in the idiomatic design of software to performance overhead.\n\nCarbon is fundamentally **a successor language approach**, rather than an\nattempt to incrementally evolve C++. It is designed around interoperability with\nC++ as well as large-scale adoption and migration for existing C++ codebases and\ndevelopers. A successor language for C++ requires:\n\n-   **Performance matching C++**, an essential property for our developers.\n-   **Seamless, bidirectional interoperability with C++**, such that a library\n    anywhere in an existing C++ stack can adopt Carbon without porting the rest.\n-   **A gentle learning curve** with reasonable familiarity for C++ developers.\n-   **Comparable expressivity** and support for existing software's design and\n    architecture.\n-   **Scalable migration**, with some level of source-to-source translation for\n    idiomatic C++ code.\n\nWith this approach, we can build on top of C++'s existing ecosystem, and bring\nalong existing investments, codebases, and developer populations. There are a\nfew languages that have followed this model for other ecosystems, and Carbon\naims to fill an analogous role for C++:\n\n-   JavaScript → TypeScript\n-   Java → Kotlin\n-   C++ → **_Carbon_**\n\n## Language Goals\n\nWe are designing Carbon to support:\n\n-   Performance-critical software\n-   Software and language evolution\n-   Code that is easy to read, understand, and write\n-   Practical safety and testing mechanisms\n-   Fast and scalable development\n-   Modern OS platforms, hardware architectures, and environments\n-   Interoperability with and migration from existing C++ code\n\nWhile many languages share subsets of these goals, what distinguishes Carbon is\ntheir combination.\n\nWe also have explicit _non-goals_ for Carbon, notably including:\n\n-   A stable\n    [application binary interface](https://en.wikipedia.org/wiki/Application_binary_interface)\n    (ABI) for the entire language and library\n-   Perfect backwards or forwards compatibility\n\nOur detailed [goals](/docs/project/goals.md) document fleshes out these ideas\nand provides a deeper view into our goals for the Carbon project and language.\n\n## Project status\n\nCarbon Language is currently an experimental project. We are hard at work on a\ntoolchain implementation with compiler and linker. You can try out the current\nstate at [compiler-explorer.com](http://carbon.compiler-explorer.com/).\n\nWe want to better understand whether we can build a language that meets our\nsuccessor language criteria, and whether the resulting language can gather a\ncritical mass of interest within the larger C++ industry and community.\n\nCurrently, we have fleshed out several core aspects of both Carbon the project\nand the language:\n\n-   The strategy of the Carbon Language and project.\n-   An open-source project structure, governance model, and evolution process.\n-   Critical and foundational aspects of the language design informed by our\n    experience with C++ and the most difficult challenges we anticipate. This\n    includes designs for:\n    -   Generics\n    -   Class types\n    -   Inheritance\n    -   Operator overloading\n    -   Lexical and syntactic structure\n    -   Code organization and modular structure\n-   An under-development [compiler and toolchain](/toolchain/) that will compile\n    Carbon (and eventually C++ code as well) into standard executable code. This\n    is where most of our current implementation efforts are directed.\n    -   Historically, there was also a prototype\n        [explorer](https://github.com/carbon-language/explorer) interpreter that\n        implemented an older version of the Carbon language design, but is no\n        longer under development and has been archived.\n\nIf you're interested in contributing, we're currently focused on developing the\nCarbon toolchain until it can\n[support Carbon ↔ C++ interop](/docs/project/roadmap.md#access-most-non-template-c-apis-in-carbon).\nBeyond that, we plan to continue developing the design and toolchain until we\ncan ship the\n[0.1 language](/docs/project/milestones.md#milestone-01-a-minimum-viable-product-mvp-for-evaluation)\nand support evaluating Carbon in more detail.\n\nYou can see our [full roadmap](/docs/project/roadmap.md) for more details.\n\n## Carbon and C++\n\nIf you're already a C++ developer, Carbon should have a gentle learning curve.\nIt is built out of a consistent set of language constructs that should feel\nfamiliar and be easy to read and understand.\n\nThe Carbon code here is hypothetical and meant to show the look and feel of the\nlanguage.\n\nC++ code like this:\n\n\u003ca href=\"docs/images/snippets.md#c\"\u003e\n\u003c!--\nEdit snippet in docs/images/snippets.md and:\nhttps://drive.google.com/drive/folders/1QrBXiy_X74YsOueeC0IYlgyolWIhvusB\n--\u003e\n\u003cimg src=\"docs/images/cpp_snippet.svg\" width=\"600\"\n     alt=\"A snippet of C++ code. Follow the link to read it.\"\u003e\n\u003c/a\u003e\n\ncorresponds to this Carbon code:\n\n\u003ca href=\"docs/images/snippets.md#carbon\"\u003e\n\u003c!--\nEdit snippet in docs/images/snippets.md and:\nhttps://drive.google.com/drive/folders/1QrBXiy_X74YsOueeC0IYlgyolWIhvusB\n--\u003e\n\u003cimg src=\"docs/images/carbon_snippet.svg\" width=\"600\"\n     alt=\"A snippet of converted Carbon code. Follow the link to read it.\"\u003e\n\u003c/a\u003e\n\nYou can call Carbon from C++ without overhead and the other way around. This\nmeans you migrate a single C++ library to Carbon within an application, or write\nnew Carbon on top of your existing C++ investment. For example:\n\n\u003ca href=\"docs/images/snippets.md#mixed\"\u003e\n\u003c!--\nEdit snippet in docs/images/snippets.md and:\nhttps://drive.google.com/drive/folders/1QrBXiy_X74YsOueeC0IYlgyolWIhvusB\n--\u003e\n\u003cimg src=\"docs/images/mixed_snippet.svg\" width=\"600\"\n     alt=\"A snippet of mixed Carbon and C++ code. Follow the link to read it.\"\u003e\n\u003c/a\u003e\n\nRead more about\n[C++ interop in Carbon](/docs/design/interoperability/philosophy_and_goals.md).\n\nBeyond interoperability between Carbon and C++, we're also planning to support\nmigration tools that will mechanically translate idiomatic C++ code into Carbon\ncode to help you switch an existing C++ codebase to Carbon.\n\n## Generics\n\nCarbon provides a\n**[modern generics system](/docs/design/generics/overview.md#what-are-generics)**\nwith checked definitions, while still **supporting opt-in\n[templates](/docs/design/templates.md) for seamless C++ interop**. Checked\ngenerics provide several advantages compared to C++ templates:\n\n-   **Generic definitions are fully type-checked**, removing the need to\n    instantiate to check for errors and giving greater confidence in code.\n    -   Avoids the compile-time cost of re-checking the definition for every\n        instantiation.\n    -   When using a definition-checked generic, usage error messages are\n        clearer, directly showing which requirements are not met.\n-   **Enables automatic, opt-in type erasure and dynamic dispatch** without a\n    separate implementation. This can reduce the binary size and enables\n    constructs like heterogeneous containers.\n-   **Strong, checked interfaces** mean fewer accidental dependencies on\n    implementation details and a clearer contract for consumers.\n\nWithout sacrificing these advantages, **Carbon generics support\nspecialization**, ensuring it can fully address performance-critical use cases\nof C++ templates. For more details about Carbon's generics, see their\n[design](/docs/design/generics).\n\nIn addition to easy and powerful interop with C++, Carbon templates can be\nconstrained and incrementally migrated to checked generics at a fine granularity\nand with a smooth evolutionary path.\n\n## Memory safety\n\nSafety, and especially\n[memory safety](https://en.wikipedia.org/wiki/Memory_safety), remains a key\nchallenge for C++ and something a successor language needs to address.\n\nWe plan to support a two step migration process:\n\n1. Highly automated, minimal supervision migration from C++ to a dialect of\n   Carbon designed for C++ interop and migration.\n2. Incremental refactoring of the Carbon code to adopt memory-safe designs,\n   patterns, and APIs.\n\nWe also want to address important, low-hanging fruit in the safety space\nimmediately when migrating into Carbon:\n\n-   Tracking uninitialized states better, increased enforcement of\n    initialization, and hardening against initialization bugs when needed.\n-   Designing fundamental APIs and idioms to support dynamic bounds checking.\n-   Switching from undefined behavior to erroneous behavior wherever possible,\n    and marking the remaining undefined behavior with visible `unsafe` syntax.\n-   Having a default debug build mode that has less runtime overhead while being\n    more comprehensive than existing C++ debug build modes combined with\n    [Address Sanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer).\n\nFor more details, see our [safety design](/docs/design/safety).\n\n## Getting started\n\nTo try out Carbon immediately in your browser, you can use the toolchain at:\n[carbon.compiler-explorer.com](http://carbon.compiler-explorer.com/).\n\nWe are developing a traditional toolchain for Carbon that can compile and link\nprograms. However, Carbon is still an early, experimental project, and so we\nonly have very experimental nightly releases of the Carbon toolchain available\nto download, and only on limited platforms. If you are using a recent Ubuntu\nLinux or similar (Debian, WSL, etc.), you can try these out by going to our\n[releases](https://github.com/carbon-language/carbon-lang/releases) page and\ndownload the latest nightly toolchain tar file:\n`carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz`. Then you can try it out:\n\n```shell\n# A variable with the nightly version from yesterday:\nVERSION=\"$(date -d yesterday +0.0.0-0.nightly.%Y.%m.%d)\"\n\n# Get the release\nwget https://github.com/carbon-language/carbon-lang/releases/download/v${VERSION}/carbon_toolchain-${VERSION}.tar.gz\n\n# Unpack the toolchain:\ntar -xvf carbon_toolchain-${VERSION}.tar.gz\n\n# Create a simple Carbon source file:\necho \"import Core library \\\"io\\\"; fn Run() { Core.Print(42); }\" \u003e forty_two.carbon\n\n# Compile to an object file:\n./carbon_toolchain-${VERSION}/bin/carbon compile \\\n  --output=forty_two.o forty_two.carbon\n\n# Install minimal system libraries used for linking. Note that installing `gcc`\n# or `g++` for compiling C/C++ code with GCC will also be sufficient, these are\n# just the specific system libraries Carbon linking still uses.\nsudo apt install libgcc-11-dev\n\n# Link to an executable:\n./carbon_toolchain-${VERSION}/bin/carbon link \\\n  --output=forty_two forty_two.o\n\n# Run it:\n./forty_two\n```\n\nAs a reminder, the toolchain is still very early and many things don't yet work.\nPlease hold off on filing lots of bugs: we know many parts of this don't work\nyet or may not work on all systems. We expect to have releases that are much\nmore robust and reliable that you can try out when we reach our\n[0.1 milestone](/docs/project/milestones.md#milestone-01-a-minimum-viable-product-mvp-for-evaluation).\n\nIf you want to build Carbon's toolchain yourself or are thinking about\ncontributing fixes or improvements to Carbon, you'll need to install our\n[build dependencies](/docs/project/contribution_tools.md#setup-commands) (Clang,\nLLD, libc++) and check out the Carbon repository. For example, on Debian or\nUbuntu:\n\n```shell\n# Update apt.\nsudo apt update\n\n# Install tools.\nsudo apt install \\\n  clang \\\n  libc++-dev \\\n  libc++abi-dev \\\n  lld\n\n# Download Carbon's code.\n$ git clone https://github.com/carbon-language/carbon-lang\n$ cd carbon-lang\n```\n\nThen you can try out our toolchain which has a very early-stage compiler for\nCarbon:\n\n```shell\n# Build and run the toolchain's help to get documentation on the command line.\n$ ./scripts/run_bazelisk.py run //toolchain -- help\n```\n\nFor complete instructions, including installing dependencies on various\ndifferent platforms, see our\n[contribution tools documentation](/docs/project/contribution_tools.md).\n\nLearn more about the Carbon project:\n\n-   [Project goals](/docs/project/goals.md)\n-   [Language design overview](/docs/design)\n-   [Carbon Toolchain](/toolchain)\n-   [FAQ](/docs/project/faq.md)\n\n## Conference talks\n\nCarbon focused talks from the community:\n\n### 2026\n\n-   Benchmarking and optimizing the Carbon compiler, NDC {Toronto} (May 5-8)\n-   Carbon: graduating from the experiment, NDC {Toronto} (May 5-8)\n\n### 2025\n\n-   Carbon: from C++ to Memory Safety, REBASE - ICFP/SPLASH\n    ([slides](https://chandlerc.blog/slides/2025-rebase-carbon))\n-   Memory safety everywhere with both Carbon and Rust, RustConf\n    ([video](https://youtu.be/FYLuom6gg_s),\n    [slides](https://chandlerc.blog/slides/2025-rustconf-memory-safety-everywhere))\n\n### 2024\n\n-   Generic implementation strategies in Carbon and Clang, LLVM Developers'\n    Meeting ([video](https://youtu.be/j0BL52NdjAU),\n    [slides](https://chandlerc.blog/slides/2024-llvm-generic-implementation/#/))\n-   The Carbon Language: Road to 0.1, NDC {TechTown}\n    ([video](https://youtu.be/bBvLmDJrzvI),\n    [slides](https://chandlerc.blog/slides/2024-ndc-techtown-carbon-road-to-0-dot-1))\n-   How designing Carbon with C++ interop taught me about C++ variadics and\n    overloads, CppNorth ([video](https://youtu.be/8SGMy9ENGz8),\n    [slides](https://chandlerc.blog/slides/2024-cppnorth-design-stories))\n-   Generic Arity: Definition-Checked Variadics in Carbon, C++Now\n    ([video](https://youtu.be/Y_px536l_80),\n    [slides](https://docs.google.com/presentation/d/10aM1mFMN6Cd5ZkE4OfeiZtSnkVNbo33N-V0et21umww/edit))\n-   Carbon: An experiment in different tradeoffs, panel session, EuroLLVM\n    ([video](https://youtu.be/Za_KWj5RMR8),\n    [slides](https://llvm.org/devmtg/2024-04/slides/LightningTalks/Smith-Carbons-high-level-semanticIR.pdf))\n    -   [Alex Bradbury's notes](https://muxup.com/2024q2/notes-from-the-carbon-panel-session-at-eurollvm)\n-   Carbon's high-level semantic IR lightning talk, EuroLLVM\n    ([video](https://youtu.be/vIWT4RhUcyw))\n\n### 2023\n\n-   Carbon’s Successor Strategy: From C++ interop to memory safety, C++Now\n    ([video](https://youtu.be/1ZTJ9omXOQ0),\n    [slides](https://chandlerc.blog/slides/2023-cppnow-carbon-strategy/index.html#/))\n-   Definition-Checked Generics, C++Now\n    -   Part 1 ([video](https://youtu.be/FKC8WACSMP0),\n        [slides](https://chandlerc.blog/slides/2023-cppnow-generics-1/#/))\n    -   Part 2 ([video](https://youtu.be/VxQ3PwxiSzk),\n        [slides](https://chandlerc.blog/slides/2023-cppnow-generics-2/#/))\n-   Modernizing Compiler Design for Carbon’s Toolchain, C++Now\n    ([video](https://youtu.be/ZI198eFghJk),\n    [slides](https://chandlerc.blog/slides/2023-cppnow-compiler/index.html#/))\n\n### 2022\n\n-   Carbon Language: Syntax and trade-offs, Core C++\n    ([video](https://youtu.be/9Y2ivB8VaIs),\n    [slides](https://docs.google.com/presentation/d/1znvL12xCuEfcsP6tpPdrQPnh-UoPFOLnC_RVXZteYaM/edit))\n-   Carbon Language: An experimental successor to C++, CppNorth\n    ([video](https://youtu.be/omrY53kbVoA),\n    [slides](https://chandlerc.blog/slides/2022-07-19-cppnorth-keynote/#/))\n\n### Other videos\n\nWe additionally have [toolchain videos](/toolchain/docs/README.md#videos).\n\n## Join us\n\nWe'd love to have folks join us and contribute to the project. Carbon is\ncommitted to a welcoming and inclusive environment where everyone can\ncontribute.\n\n-   Most of Carbon's design discussions occur on\n    [Discord](https://discord.gg/ZjVdShJDAs).\n-   To watch for major release announcements, subscribe to our\n    [Carbon release post on GitHub](https://github.com/carbon-language/carbon-lang/discussions/1020)\n    and [star carbon-lang](https://github.com/carbon-language/carbon-lang).\n-   See our [code of conduct](CODE_OF_CONDUCT.md) and\n    [contributing guidelines](CONTRIBUTING.md) for information about the Carbon\n    development community.\n\n### Contributing\n\nYou can also directly:\n\n-   [Contribute to the language design](CONTRIBUTING.md#contributing-to-the-language-design):\n    feedback on design, new design proposal\n-   [Contribute to the language implementation](CONTRIBUTING.md#contributing-to-the-language-implementation)\n    -   [Carbon Toolchain](/toolchain/), and project infrastructure\n\nYou can **check out some\n[\"good first issues\"](https://github.com/carbon-language/carbon-lang/labels/good%20first%20issue)**,\nor join the `#contributing-help` channel on\n[Discord](https://discord.gg/ZjVdShJDAs). See our full\n[`CONTRIBUTING`](CONTRIBUTING.md) documentation for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbon-language%2Fcarbon-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarbon-language%2Fcarbon-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbon-language%2Fcarbon-lang/lists"}