{"id":18565251,"url":"https://github.com/rigetti/forest-notebook","last_synced_at":"2025-04-10T04:32:36.472Z","repository":{"id":44597095,"uuid":"213417097","full_name":"rigetti/forest-notebook","owner":"rigetti","description":"Interactive quantum programming with Forest \u0026 Jupyter.","archived":false,"fork":false,"pushed_at":"2024-03-28T17:14:43.000Z","size":661,"stargazers_count":13,"open_issues_count":2,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-24T16:11:23.275Z","etag":null,"topics":["docker","jupyter-notebook","quantum-computing","quantum-programming"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/rigetti.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-10-07T15:16:18.000Z","updated_at":"2024-11-08T09:46:32.000Z","dependencies_parsed_at":"2024-03-26T23:28:54.865Z","dependency_job_id":null,"html_url":"https://github.com/rigetti/forest-notebook","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigetti%2Fforest-notebook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigetti%2Fforest-notebook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigetti%2Fforest-notebook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigetti%2Fforest-notebook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rigetti","download_url":"https://codeload.github.com/rigetti/forest-notebook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157626,"owners_count":21057044,"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":["docker","jupyter-notebook","quantum-computing","quantum-programming"],"created_at":"2024-11-06T22:18:07.611Z","updated_at":"2025-04-10T04:32:36.192Z","avatar_url":"https://github.com/rigetti.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"Interactive quantum programming with Forest \u0026 Jupyter\n=====================================================\n\n[![Binder](https://mybinder.org/badge_logo.svg)][binder]\n[![docker pulls][docker-badge]][forest-notebook]\n[![github release][github-badge]][github-release]\n\nThe `forest-notebook` repository contains the [`Dockerfile`][dockerfile]\nfor building the [`rigetti/forest-notebook`][forest-notebook] image.\nThis image contains an interactive quantum programming environment\nbacked by [JupyterLab][jupyter], akin to the applications available\nin the [Docker Stacks][docker-stacks] repository.\n\nThe image is based off of the [`rigetti/forest`][forest] image, which comes\nwith [pyQuil][pyquil] installed, as well as [quilc][quilc] and [QVM][qvm]\nservers running in the background. The `rigetti/forest-notebook` image\nadditionally has the [`forest-benchmarking`][benchmarking] library installed,\nalong with some useful Python packages for data analysis and visualization.\nFinally, it contains `jupyter` and the new JupyterLab interface, and is\nconfigured to spin up a notebook server when the image is run, which can\nbe done via the following command (optionally changing `PORT` to `localhost`\nport you'd like to run the notebook server on):\n\n```bash\nPORT=8888 docker run -p $PORT:8888 rigetti/forest-notebook\n```\n\nThis will start the container, and somewhere in the terminal output it will\nprint a URL that looks something like the following, but with `TOKEN` replaced\nwith a long string of letters and numbers:\n\n```\nhttp://127.0.0.1:8888/?token=TOKEN\n```\n\nCopy paste the above URL into your browser, replacing 8888 with `PORT`. This\nwill bring up the JupyterLab interface, with the root directory of the\nfilesystem being the top-level directory of the pyQuil repository. You can\nthen run the notebooks in the `examples` directory, or create your own.\nThese notebooks will have access to the latest quilc and QVM servers,\nwhich are running in the background. Happy quantum programming!\n\nCreating a Binder repository using this image\n---------------------------------------------\n\nOne of the most exciting recent applications of a Jupyter-backed Docker\nimage is [Binder][mybinder], which provides a free hosting service and\nexecutable environment for a repository of Jupyter notebooks. Binder can\nbe configured many ways, but the most advanced configuration is via a custom\nDockerfile. To create a Binder that has access to the full Forest quantum\nprogramming suite, add the following Dockerfile to the repository of Jupyter\nnotebooks that you'd like to turn into an interactive web application:\n\n```dockerfile\n# build image from a tagged forest-notebook image\nFROM rigetti/forest-notebook:3.0.0\n\n# copy over files from binder repository into $HOME\nCOPY . ${HOME}\n\n# set working directory to $HOME\nWORKDIR ${HOME}\n```\n\nOnce you've added the Dockerfile, follow the instructions in the Binder link\nabove to create your very own interactive quantum programming environment!\n\nFor some examples of existing Forest-backed Binder repositories, check out the following:\n\n- [`rigetti/forest-tutorials`][forest-tutorials]:\n    Interactive tutorial notebooks for pyQuil and the Forest quantum programming SDK.\n- [`rigetti/qcs-paper`][qcs-paper]:\n    Supplementary interactive notebooks from the [paper][arxiv] on Quantum Cloud Services.\n- [`karalekas/stanford-cs269q`][stanford-cs269q]:\n    Lecture notebook from Stanford's course on quantum computer programming.\n- [`exeter-quantum/senior-project`][exeter]:\n    Notebooks from a quantum computing senior project at Phillips Exeter Academy.\n\n[arxiv]: https://arxiv.org/abs/2001.04449\n[benchmarking]: https://github.com/rigetti/forest-benchmarking\n[binder]: https://mybinder.org/v2/gh/rigetti/forest-tutorials/master?urlpath=lab/tree/Welcome.ipynb\n[dockerfile]: https://docs.docker.com/engine/reference/builder/\n[docker-badge]: https://img.shields.io/docker/pulls/rigetti/forest-notebook.svg\n[docker-stacks]: https://github.com/jupyter/docker-stacks\n[exeter]: https://github.com/exeter-quantum/senior-project\n[forest]: https://hub.docker.com/r/rigetti/forest\n[forest-notebook]: https://hub.docker.com/r/rigetti/forest-notebook\n[forest-tutorials]: https://github.com/rigetti/forest-tutorials\n[github-badge]: https://img.shields.io/github/release/rigetti/forest-notebook.svg\n[github-release]: https://github.com/rigetti/forest-notebook/releases\n[gitlab-badge]: https://gitlab.com/rigetti/forest/forest-notebook/badges/master/pipeline.svg\n[gitlab-project]: https://gitlab.com/rigetti/forest/forest-notebook/commits/master\n[jupyter]: https://jupyter.org/\n[mybinder]: https://mybinder.org\n[pyquil]: https://github.com/rigetti/pyquil\n[qcs-paper]: https://github.com/rigetti/qcs-paper\n[quilc]: https://github.com/rigetti/quilc\n[qvm]: https://github.com/rigetti/qvm\n[stanford-cs269q]: https://github.com/karalekas/stanford-cs269q\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigetti%2Fforest-notebook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frigetti%2Fforest-notebook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigetti%2Fforest-notebook/lists"}