Questions and discussions
If you want to ask a question or have an open-ended conversation, use the “discussions” tab rather than filing an issue. This keeps the issues list focused on action items.Before you code
Discuss your change
This repository is the canonical source code for the core of Cloudflare Workers. The Workers team actively does their development in this repository. Any changes landed in the main branch automatically become available on the Cloudflare Workers Platform typically within a week or two. Cloudflare Workers has a strong commitment to backwards-compatibility. Once a feature is in use on Cloudflare’s platform, it generally cannot be taken away. The Workers team will be required to maintain the feature forever.The project does not use semver and cannot just bump a major version number to introduce breaking changes.
Development environment
Building the project
This codebase includes many unit tests. To run them:Using Just commands
The project provides convenient Just commands for development:Visual Studio Code
See the VSCode guide for instructions on how to set up Visual Studio Code for development.Understanding the codebase
workerd is based on KJ, the C++ toolkit library underlying Cap’n Proto. Before writing code, review:Key technologies
V8
JavaScript engine powering the runtime
Cap'n Proto
Serialization/RPC framework and KJ base library
KJ Library
C++ toolkit providing containers, async I/O, and promises
Bazel
Primary build system
Code review culture
The Cloudflare Workers project has a culture of careful code review. If code is hard to review, it may take much longer to land, or may be declined entirely for this reason alone. The same standards apply within the team.Next steps
Code style
Learn about the project’s code style guidelines
Testing
Understand the testing requirements and practices
Documentation
Guidelines for writing and updating documentation
Architecture
Explore the architecture of the workerd runtime