{"id":13470281,"url":"https://github.com/stratum/stratum","last_synced_at":"2026-01-18T06:20:25.313Z","repository":{"id":38240441,"uuid":"207760856","full_name":"stratum/stratum","owner":"stratum","description":"Stratum is an open source silicon-independent switch operating system for software defined networks.","archived":false,"fork":false,"pushed_at":"2024-07-09T18:54:18.000Z","size":8482,"stargazers_count":400,"open_issues_count":125,"forks_count":137,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-03-26T11:40:43.611Z","etag":null,"topics":["barefoot-tofino","broadcom","gnmi","p4runtime","sdn","stratum"],"latest_commit_sha":null,"homepage":"https://www.opennetworking.org/stratum/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratum.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-11T08:22:02.000Z","updated_at":"2025-03-22T23:59:19.000Z","dependencies_parsed_at":"2023-11-23T05:38:12.769Z","dependency_job_id":"6cd0b592-bf9a-4e69-9b03-273321b075a7","html_url":"https://github.com/stratum/stratum","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/stratum/stratum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum%2Fstratum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum%2Fstratum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum%2Fstratum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum%2Fstratum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratum","download_url":"https://codeload.github.com/stratum/stratum/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum%2Fstratum/sbom","scorecard":{"id":854755,"data":{"date":"2025-08-11","repo":{"name":"github.com/stratum/stratum","commit":"f8f71301cb602ac663818f2b185d57771b27d8e2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"Code-Review","score":4,"reason":"Found 12/30 approved changesets -- score normalized to 4","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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":-1,"reason":"No tokens found","details":null,"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":"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":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 2022-06-30 not signed: https://api.github.com/repos/stratum/stratum/releases/71324476","Warn: release artifact 2022-03-18 not signed: https://api.github.com/repos/stratum/stratum/releases/62224768","Warn: release artifact 2021-12-13 not signed: https://api.github.com/repos/stratum/stratum/releases/55226935","Warn: release artifact 2021-10-09 not signed: https://api.github.com/repos/stratum/stratum/releases/51092192","Warn: release artifact 2021-06-30 not signed: https://api.github.com/repos/stratum/stratum/releases/45536359","Warn: release artifact 2022-06-30 does not have provenance: https://api.github.com/repos/stratum/stratum/releases/71324476","Warn: release artifact 2022-03-18 does not have provenance: https://api.github.com/repos/stratum/stratum/releases/62224768","Warn: release artifact 2021-12-13 does not have provenance: https://api.github.com/repos/stratum/stratum/releases/55226935","Warn: release artifact 2021-10-09 does not have provenance: https://api.github.com/repos/stratum/stratum/releases/51092192","Warn: release artifact 2021-06-30 does not have provenance: https://api.github.com/repos/stratum/stratum/releases/45536359"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 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"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:7: pin your Docker image by updating stratumproject/build:build to stratumproject/build:build@sha256:780ca92be7021531a24368a2a7915cb4fe08f27e67ee61f32bdfbd2c5339807d","Warn: containerImage not pinned by hash: Dockerfile.dev:4: pin your Docker image by updating stratumproject/build:build to stratumproject/build:build@sha256:780ca92be7021531a24368a2a7915cb4fe08f27e67ee61f32bdfbd2c5339807d","Warn: containerImage not pinned by hash: Dockerfile.np4intel.dev:4","Warn: containerImage not pinned by hash: stratum/hal/bin/barefoot/docker/Dockerfile:4: pin your Docker image by updating bitnami/minideb:buster to bitnami/minideb:buster@sha256:837cf5cdc9fdb8c6cc144b41e3626b28384697f661862dc29a6c95e9e521e118","Warn: containerImage not pinned by hash: stratum/hal/bin/barefoot/docker/Dockerfile.bf_pipeline_builder:4","Warn: containerImage not pinned by hash: stratum/hal/bin/barefoot/docker/Dockerfile.model:4","Warn: containerImage not pinned by hash: stratum/hal/bin/barefoot/docker/Dockerfile.model:18: pin your Docker image by updating ubuntu:18.04 to ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: stratum/hal/bin/bcm/standalone/docker/Dockerfile:4: pin your Docker image by updating bitnami/minideb:buster to bitnami/minideb:buster@sha256:837cf5cdc9fdb8c6cc144b41e3626b28384697f661862dc29a6c95e9e521e118","Warn: containerImage not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.builder:16: pin your Docker image by updating ubuntu:18.04 to ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime:20","Warn: containerImage not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime:100: pin your Docker image by updating ubuntu:18.04 to ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime.local:22","Warn: containerImage not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime.local:94: pin your Docker image by updating ubuntu:18.04 to ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: stratum/hal/config/Dockerfile:4: pin your Docker image by updating bitnami/minideb:buster to bitnami/minideb:buster@sha256:837cf5cdc9fdb8c6cc144b41e3626b28384697f661862dc29a6c95e9e521e118","Warn: containerImage not pinned by hash: stratum/p4c_backends/fpm/Dockerfile:13","Warn: containerImage not pinned by hash: stratum/p4c_backends/fpm/Dockerfile:19","Warn: containerImage not pinned by hash: stratum/tools/Dockerfile.stratum_tools:4","Warn: containerImage not pinned by hash: stratum/tools/stratum_replay/Dockerfile:4: pin your Docker image by updating bitnami/minideb:buster to bitnami/minideb:buster@sha256:837cf5cdc9fdb8c6cc144b41e3626b28384697f661862dc29a6c95e9e521e118","Warn: containerImage not pinned by hash: tools/mininet/Dockerfile:10","Warn: containerImage not pinned by hash: tools/mininet/Dockerfile:40","Warn: pipCommand not pinned by hash: Dockerfile.build:105-106","Warn: pipCommand not pinned by hash: Dockerfile.build:105-106","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.builder:112-114","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.builder:112-114","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.builder:112-114","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime:120-121","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime:120-121","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime.local:114-115","Warn: pipCommand not pinned by hash: stratum/hal/bin/np4intel/docker/Dockerfile.runtime.local:114-115","Warn: pipCommand not pinned by hash: tools/mininet/Dockerfile:37","Info:   1 out of  21 containerImage dependencies pinned","Info:   0 out of  10 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"}}]},"last_synced_at":"2025-08-23T23:35:31.847Z","repository_id":38240441,"created_at":"2025-08-23T23:35:31.847Z","updated_at":"2025-08-23T23:35:31.847Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"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":["barefoot-tofino","broadcom","gnmi","p4runtime","sdn","stratum"],"created_at":"2024-07-31T16:00:27.650Z","updated_at":"2026-01-18T06:20:25.268Z","avatar_url":"https://github.com/stratum.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"\u003c!--\nCopyright 2018 Google LLC\nCopyright 2018-present Open Networking Foundation\n\nSPDX-License-Identifier: Apache-2.0\n--\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Stratum Logo\" src=\"stratum/docs/images/stratum-logo.png\"\u003e\n\u003c/p\u003e\n\n# Stratum - Enabling the era of next-generation SDN\n\nStratum is an open source silicon-independent switch operating system for\nsoftware defined networks. It is building an open, minimal production-ready\ndistribution for white box switches. Stratum exposes a set of next-generation\nSDN interfaces including P4Runtime and OpenConfig, enabling interchangeability\nof forwarding devices and programmability of forwarding behaviors. Current\nsupport includes Barefoot Tofino and Broadcom Tomahawk devices, as well as the\nbmv2 software switch.\n\nBuild status (main): [![CircleCI](https://circleci.com/gh/stratum/stratum/tree/main.svg?style=svg)](https://circleci.com/gh/stratum/stratum/tree/main)\n[![codecov](https://codecov.io/gh/stratum/stratum/branch/main/graph/badge.svg)](https://codecov.io/gh/stratum/stratum)\n\n# Documentation\n\n## Getting Started with SDN / P4 / Stratum\n\nIf you're completly new to the world of P4 and are looking for step-by-step\ninstructions with batteries included, the\n[NG-SDN](https://github.com/opennetworkinglab/ngsdn-tutorial) tutorial is a good\nstarting point. For material more focused on P4 as a language, have a look at\nthe [p4lang](https://github.com/p4lang/tutorials) tutorials. Finally, there is\nthe \"Software-Defined Networks: A Systems Approach\" book\n([HTML](https://sdn.systemsapproach.org/)) for comprehensive coverage of SDN.\nAlso see the chapter about\n[Stratum](https://sdn.systemsapproach.org/stratum.html#thin-switch-os) in it.\n\n## Table of Contents\n### Development\n\n- [Code of Conduct](/CODE_OF_CONDUCT.md)\n- [Contribution Guidelines](/CONTRIBUTING.md)\n- [IDE Setup](https://github.com/stratum/stratum/wiki/IDE-setup-for-development)\n- [Release Plan](/stratum/docs/release_plan.md)\n- [Logging Guide](/stratum/docs/logging_guide.md)\n- [PHAL Development Tutorial](/stratum/docs/phal_development_tutorial.md)\n- [Stratum Configurators Design Document](/stratum/docs/configurators.md)\n- [Stratum PHAL Overview (Physical Hardware Access Layer)](/stratum/docs/phal.md)\n\n### Platforms\n\n- [Tofino](/stratum/hal/bin/barefoot/README.md)\n  - [Building Stratum for Barefoot Tofino based switches](/stratum/hal/bin/barefoot/README.build.md)\n  - [Running Stratum on a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.run.md)\n  - [Testing Stratum on a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.test.md)\n  - [Pushing a pipeline to a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.pipeline.md)\n- [Broadcom](/stratum/hal/bin/bcm/standalone/README.md)\n  - [How to Add a Dataplane Feature to Stratum (BCM)](/stratum/docs/extenting_stratum_bcm.md)\n- [Intel NP4](/stratum/hal/bin/np4intel/docker/README.md)\n- [bmv2](/stratum/hal/bin/bmv2/README.md)\n- [Dummy Switch](/stratum/hal/bin/dummy/README.md)\n\n### Tools\n\n- [gNMI CLI Tool](/stratum/tools/gnmi/README.md)\n- [Tofino Pipeline Builder](/stratum/hal/bin/barefoot/README.pipeline.md#stratum-bfpipelineconfig-format-and-the-bfpipelinebuilder)\n- [Stratum-Enabled Mininet](/tools/mininet/README.md)\n- [P4Runtime write request replay tool](/stratum/tools/stratum_replay/README.md)\n- [ChassisConfig Migrator](/stratum/hal/config/chassis_config_migrator.cc)\n- [PHAL CLI Tool](/stratum/hal/lib/phal/phal_cli.cc)\n- [ONLP CLI Tool](/stratum/hal/lib/phal/onlp/onlp_cli.cc)\n- [ONLP PHAL CLI Tool](/stratum/hal/lib/phal/onlp/onlp_phal_cli.cc)\n\n### Other Documentation\n\n- [SD-Fabric](https://docs.sd-fabric.org)\n- [Trellis + Stratum example](/tools/mininet/examples/trellis/README.md)\n- [Continuous Certification Program (CCP)](https://wiki.opennetworking.org/display/COM/Stratum+Continuous+Certification+Program)\n- [Community Channels](https://github.com/stratum/stratum/wiki/Discuss)\n- [Talks](https://github.com/stratum/stratum/wiki/Talks)\n- [Test Vectors](https://github.com/stratum/testvectors/blob/master/docs/testvectors_overview.md)\n- [Stratum example pipelines](/stratum/pipelines/README.md)\n  - [Main FPM pipeline](/stratum/pipelines/main/README.md)\n- [Supported gNMI paths](/stratum/docs/gnmi/supported-paths.md)\n- [Config Monitoring Service](/stratum/docs/gnmi/README.md)\n- [Transponder Abstraction Interface (TAI)](/stratum/docs/tai/README.md)\n- [P4C backend](/stratum/p4c_backends/README.md)\n- [CDLang gNMI Compliance Definition Language](/stratum/testing/cdlang/g3doc/cdlang.md)\n- [gNMI/OpenConfig Contract Definition Language tools](/stratum/testing/cdlang/README.md)\n- [gNMI Test Scenarios](/stratum/testing/scenarios/README.md)\n- [SSL/TLS Support and Security](/stratum/lib/security/README.md)\n\n# Component Overview\n\n![img](stratum/docs/images/stratum_architecture.png)\n\n[P4Runtime](https://p4.org/p4-runtime) provides a flexible mechanism for\nconfiguring the forwarding pipeline on a network switch.\n\n[gNMI](https://github.com/openconfig/reference/tree/master/rpc/gnmi) is a\nframework for network device management that uses gRPC as the transport\nmechanism.\n\n[SDKLT](https://github.com/Broadcom-Network-Switching-Software/SDKLT) is used\nto program fixed-pipeline switches using the Tomahawk chip from Broadcom.\n\n# Supported Devices\n\n## Tofino\n\n- APS Networks BF2556X-1T\n- APS Networks BF6064X-T\n- Delta AG9064v1\n- Edgecore Wedge100BF-32QS\n- Edgecore Wedge100BF-32X\n- Edgecore Wedge100BF-65X\n- Inventec D5254\n- Inventec D5264Q28B\n- Inventec D10056\n- Inventec D10064\n- Netberg Aurora 610\n- Netberg Aurora 710\n- Netberg Aurora 750\n\n*Note: Pre-built Stratum binaries for Tofino are available for recent Barefoot\nSDE releases in the [Releases](https://github.com/stratum/stratum/releases/latest)\npage. Vendors, customers, and researchers with access to the Barefoot SDE can\nbuild Stratum themselves. For access to the SDE, please contact an Intel\nrepresentative.*\n\n## Broadcom\n\n- Tomahawk (SDKLT, OpenNSA, SDK6)\n    - Edgecore AS7712-32X\n    - Edgecore AS7716-24XC Cassini\n    - Dell Z9100\n    - Inventec D7032\n    - QCT QuantaMesh T7032-IX1\n- Tomahawk+ (SDK6)\n    - Edgecore AS7716-24SC Cassini\n    - Inventec D7054\n- Tomahawk2 (OpenNSA, SDK6)\n- Tomahawk3 (SDK6)\n- Trident2 (OpenNSA, SDK6)\n    - Edgecore AS6712\n    - Inventec D6254\n\n*Note: Pre-built Stratum binaries for SDKLT and OpenNSA are available in the\n[Releases](https://github.com/stratum/stratum/releases/latest) page. Vendors and\ncustomers with a Broadcom SLA can build Stratum themselves using the Broadcom\nSwitch SDK (SDK6); versions 6.5.17 and 6.5.19 are tested. If you would like to\nuse Stratum with SDK6 and you do not have an SLA with Broadcom, contact a\nBroadcom representative or your switch vendor.*\n\n## Smart NIC\n\n- Intel PAC N3000\n\n## Software Switches\n\n- bmv2\n- dummy\n\n# Source code\n\nThis repository contains source code for a reference implementation of\nthe P4Runtime and gNMI services, that serves as the hardware abstraction layer\nfor a network switch. It has been successfully prototyped at Google, running on\nproduction hardware on a data center network subsystem.\n\n# Development environment\n\nWe provide a script to create a Docker development environment for Stratum.\n\nTo start the container, run the following in your `stratum` directory:\n\n    ./setup_dev_env.sh\n\nThe script will build a Docker image using Dockerfile.dev and run a bash session\nin it. This directory will be mounted in the Docker image and you will be able\nto run git, edit code, and build Stratum / run tests using Bazel.\n\nFor more information, you can see a complete list of arguments by running:\n`setup_dev_env.sh -h`\n\nIf you are using Docker on Linux, make sure that you can use Docker as a\nnon-root user, otherwise you will not be able to run setup_dev_env.sh:\n\n    sudo usermod -aG docker $USER\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratum%2Fstratum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratum%2Fstratum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratum%2Fstratum/lists"}