{"id":15030862,"url":"https://github.com/rust-lang/rust-playpen","last_synced_at":"2025-12-18T09:05:27.983Z","repository":{"id":10071241,"uuid":"12125675","full_name":"rust-lang/rust-playpen","owner":"rust-lang","description":"A web interface for running Rust code","archived":true,"fork":false,"pushed_at":"2017-10-23T15:02:38.000Z","size":497,"stargazers_count":213,"open_issues_count":79,"forks_count":81,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-09-28T20:41:14.170Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"heroku/react-refetch","license":"mit","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","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-08-15T03:40:58.000Z","updated_at":"2024-08-15T10:51:11.000Z","dependencies_parsed_at":"2022-09-10T22:30:50.793Z","dependency_job_id":null,"html_url":"https://github.com/rust-lang/rust-playpen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playpen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playpen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playpen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Frust-playpen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-lang","download_url":"https://codeload.github.com/rust-lang/rust-playpen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235208940,"owners_count":18953003,"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":[],"created_at":"2024-09-24T20:14:25.248Z","updated_at":"2025-10-04T01:30:59.936Z","avatar_url":"https://github.com/rust-lang.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"***Note:*** This project is deprecated.  To report issues about the playground\nhosted at \u003chttps://play.rust-lang.org/\u003e, check out the\n[next-gen playpen](https://github.com/integer32llc/rust-playground/).\n\n# Old README\n\nA web interface for running Rust code.\n\nThe interface can also be accessed in most Rust-related channels on\n`irc.mozilla.org`.\n\nTo use Playbot in a public channel, address your message to it.\n\n    \u003cyou\u003e playbot: println!(\"Hello, World\");\n    -playbot:#rust-offtopic- Hello, World\n    -playbot:#rust-offtopic- ()\n    \u003cyou\u003e playbot: 1+2+3\n    -playbot:#rust-offtopic- 6\n\nYou can also private message Playbot your code to have it evaluated. In a\nprivate message, don't preface the code with playbot's nickname:\n\n    /msg playbot println!(\"Hello, World\");\n\n# Running your own Rust-Playpen\n\n## System Requirements\n\nCurrently needs to be run on a system with access to Docker.\n\n## Running the web server\n\nFirst, create the Docker images that playpen will use:\n\n```\nsh docker/build.sh\n```\n\nNext, spin up the server.\n\n```\ncargo run --bin playpen\n```\n\nYou should now be able to browse http://127.0.0.1:8080 and interact.\n\n## IRC Bot Setup\n\nYou'll need to move `playbot.toml.example` to `playbot.toml` and then configure\nit appropriately.\n\n# Setting up the play.rust-lang.org server\n\nFirst off, start off with a fresh Ubuntu AMI. These should be listed on\nhttps://cloud-images.ubuntu.com/locator/ec2/, and the current one is the Xenial\nus-west-1 64-bit hvm ebs-ssd server, ami-08490c68.\n\n* Launch an m3.medium instance\n* Launch into EC2-Classic\n* Protect against accidental termination\n* Make the disk ~100GB\n* Use the existing playground security group\n\nSSH through the bastion, then:\n\n```\nsudo apt-get update\nsudo apt-get install python-pip apt-transport-https ca-certificates libssl-dev pkg-config\nsudo pip install pygments\n\ncurl https://sh.rustup.rs | sh\ngit clone https://github.com/rust-lang/rust-playpen\n\n# see https://docs.docker.com/engine/installation/linux/ubuntulinux/\nsudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D\necho 'deb https://apt.dockerproject.org/repo ubuntu-xenial main' | sudo tee /etc/apt/sources.list.d/docker.list\nsudo apt-get update\nsudo apt-get install linux-image-extra-$(uname -r) docker-engine\nsudo service docker start\nsudo usermod -aG docker ubuntu\n```\n\nNext, configure `playbot.toml` copied from `playbot.toml.example`.\n\nNext, open up a screen window (`screen -R`), and spin up two sessions:\n\n```\ncargo build --release --bin playpen \u0026\u0026 RUST_LOG=debug ./target/release/playpen 0.0.0.0 2\u003e\u00261 | logger -t playpen\n```\n\n```\ncargo build --release --bin playbot \u0026\u0026 RUST_LOG=debug ./target/release/playbot 2\u003e\u00261 | logger -t playbot\n```\n\nAdd a cron job to update the containers daily, currently:\n\n```\n0 10 * * * cd $HOME/rust-playpen \u0026\u0026 sh docker/build.sh 2\u003e\u00261 | logger -t playpen-update\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Frust-playpen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-lang%2Frust-playpen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Frust-playpen/lists"}