{"id":13648599,"url":"https://github.com/rust-lang/rust-playground","last_synced_at":"2025-05-14T11:11:13.487Z","repository":{"id":38184905,"uuid":"61911100","full_name":"rust-lang/rust-playground","owner":"rust-lang","description":"The Rust Playground","archived":false,"fork":false,"pushed_at":"2025-04-25T01:25:11.000Z","size":7273,"stargazers_count":1326,"open_issues_count":203,"forks_count":223,"subscribers_count":35,"default_branch":"main","last_synced_at":"2025-05-02T03:41:32.143Z","etag":null,"topics":["rust","rust-playground"],"latest_commit_sha":null,"homepage":"https://play.rust-lang.org/","language":"Rust","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/rust-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-06-24T20:36:14.000Z","updated_at":"2025-04-29T10:51:21.000Z","dependencies_parsed_at":"2023-11-07T00:21:48.431Z","dependency_job_id":"a5a2fbc6-1dd5-42b5-bcd3-20bfb29ea3ff","html_url":"https://github.com/rust-lang/rust-playground","commit_stats":null,"previous_names":["integer32llc/rust-playground"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-lang","download_url":"https://codeload.github.com/rust-lang/rust-playground/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129494,"owners_count":22019628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["rust","rust-playground"],"created_at":"2024-08-02T01:04:22.835Z","updated_at":"2025-05-14T11:11:08.476Z","avatar_url":"https://github.com/rust-lang.png","language":"Rust","funding_links":[],"categories":["Rust","TypeScript"],"sub_categories":["Other dialects and variants"],"readme":"# Rust Playground\n\nThis is the home of the [Rust Playground][real],\nalso [hosted by Integer 32][us].\n\n[real]: https://play.rust-lang.org/\n[us]: https://play.integer32.com/\n\n## What's it do?\n\nThe playground allows you to experiment with Rust before you install\nit locally, or in any other case where you might not have the compiler\navailable.\n\nIt has a number of features, including:\n\n1. A nice, unobtrusive editor with syntax highlighting.\n1. The ability to compile in debug or release mode against the current\n   stable, beta, or nightly version of Rust.\n1. The top 100 popular crates (ranked by all-time downloads), crates\n   that are part of the [Rust Cookbook][] and all of their\n   dependencies are available for use!\n1. The ability to quickly load and save your code to a\n   GitHub [Gist][gist] and share it with your friends.\n1. [rustfmt][] and [Clippy][clippy] can be run against the source code.\n1. The ability to see the LLVM IR, assembly, or Rust MIR for the\n   source code.\n\n[Rust Cookbook]: https://rust-lang-nursery.github.io/rust-cookbook/\n[gist]: https://gist.github.com/\n[rustfmt]: https://github.com/rust-lang/rustfmt\n[clippy]: https://github.com/rust-lang/rust-clippy\n\n## Architecture\n\nA [React][react] frontend communicates with an [Axum][axum]\nbackend. [Docker][docker] containers are used to provide the various\ncompilers and tools as well as to help isolate them.\n\nWe hope that this frontend and backend stack is comfortable to\npotential contributors! If you are interested in contributing, please\nfeel free to ask a question and we might even be able to point out\nsome useful resources.\n\n[react]: https://reactjs.org/\n[axum]: https://github.com/tokio-rs/axum\n[docker]: https://www.docker.com/\n\n## Resource Limits\n\n### Network\n\nThere is no network connection between the compiler container and the\noutside world.\n\n### Memory\n\nThe amount of memory the compiler and resulting executable use is\nlimited by the container.\n\n### Execution Time\n\nThe total compilation and execution time is limited by the container.\n\n### Disk\n\nThis sandbox **does not** provide any disk space limits. It is\nsuggested to run the server such that the temp directory is a\nspace-limited. One bad actor may fill up this shared space, but it\nshould be cleaned when that request ends.\n\n## Security Hall of Fame\n\nA large set of thanks go to those individuals who have helped by\nreporting security holes or other attack vectors against the\nPlayground. Each report helps us make the Playground better!\n\n* Preliminary sandbox testing (PID limit) by Stefan O'Rear.\n\nIf you'd like to perform tests that you think might disrupt service of\nthe Playground, get in touch and we can create an isolated clone to\nperform tests on! Once fixed, you can choose to be credited here.\n\n## Development\n\n### Build the UI\n```\ncd ui/frontend\npnpm install\npnpm watch # Will rebuild and watch for changes\n```\n\nIf you don't need the backend running because you are only making\nbasic HTML/CSS/JS changes, directly open in your browser the built\n`ui/frontend/build/index.html`.\n\n### Build and run the server\n\n```\ncd ui\ncargo run\n```\n\nThere are some optional configuration parameters described in the\n[ui README](./ui/README.md) which you may set in a `.env` file. The server will\nrun with no configuration, but in order to load and save gists a GitHub token\nmust be configured.\n\n### Build or download the containers\n```\ncd compiler\n./build.sh # If you want to test changes to the containers\n./fetch.sh # If you just want the current playground\n```\n\n## Deployment\n\n* [Amazon EC2 (Ubuntu)](deployment/ubuntu.md)\n\n## License\n\nLicensed under either of\n * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\nat your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Frust-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-lang%2Frust-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Frust-playground/lists"}