{"id":15045620,"url":"https://github.com/entangled-xyz/scotty","last_synced_at":"2025-04-10T00:43:25.711Z","repository":{"id":57743978,"uuid":"187401939","full_name":"entangled-xyz/scotty","owner":"entangled-xyz","description":"Quantum computing framework for Java and Scala developers.","archived":false,"fork":false,"pushed_at":"2019-10-01T21:28:20.000Z","size":334,"stargazers_count":24,"open_issues_count":6,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T00:43:20.639Z","etag":null,"topics":["framework","jvm","quantum","quantum-computing","scala"],"latest_commit_sha":null,"homepage":"https://www.entangled.xyz/scotty/","language":"Scala","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/entangled-xyz.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":"2019-05-18T20:23:33.000Z","updated_at":"2024-04-22T13:27:26.000Z","dependencies_parsed_at":"2022-08-31T08:41:08.254Z","dependency_job_id":null,"html_url":"https://github.com/entangled-xyz/scotty","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entangled-xyz%2Fscotty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entangled-xyz%2Fscotty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entangled-xyz%2Fscotty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entangled-xyz%2Fscotty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/entangled-xyz","download_url":"https://codeload.github.com/entangled-xyz/scotty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137998,"owners_count":21053775,"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":["framework","jvm","quantum","quantum-computing","scala"],"created_at":"2024-09-24T20:52:05.617Z","updated_at":"2025-04-10T00:43:25.690Z","avatar_url":"https://github.com/entangled-xyz.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scotty: Quantum Computing in Scala\n\n[![Build Status](https://travis-ci.org/entangled-xyz/scotty.svg?branch=master)](https://travis-ci.org/entangled-xyz/scotty) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/xyz.entangled/scotty_2.13/badge.svg)](https://maven-badges.herokuapp.com/maven-central/xyz.entangled/scotty_2.13) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)\n\n*\"Whatever you say, sir. Thy will be done.\"*—Montgomery Scott\n\nScotty is a quantum computing framework for Scala developers. It comes with a quantum computer simulator that can be used for writing hybrid programs out-of-the-box.\n\nMost quantum frameworks and simulators are written either in quantum-specific languages (like Q# and QISKit) or Python. Scotty is one of the first attempts at building a cross-platform quantum framework on top of the JVM.\n\nIt was built with three principles in mind:\n\n- **Write once, run anywhere**: experiment with quantum code and run it with Scotty. Export Scotty circuits (coming soon) to Quil or OpenQASM and run it on other simulators or real quantum computers.\n- **Expandability**: provide a high-level set of abstractions that can be expanded on different architectures.\n- **No PhD required**: it should be easy to get started and everything should work intuitively out-of-the-box.\n\nHere is an example of a quantum teleportation algorithm written in Scotty to give you an idea of what a typical piece of code looks like:\n\n```scala\ndef entangle(q1: Int, q2: Int) = Circuit(H(q1), CNOT(q1, q2))\n\nval msg = Qubit(Complex(0.8), Complex(0.6), \"message\")\nval here = Qubit.zero(\"here\")\nval there = Qubit.zero(\"there\")\n\nval register = QubitRegister(msg, here, there)\n\nval circuit = entangle(1, 2)\n  .combine(CNOT(0, 1), H(0))\n  .combine(CNOT(1, 2), Controlled(0, Z(2)))\n  .withRegister(register)\n\nimplicit val sim = QuantumSimulator()\n\nassert(\n  QubitProbabilityReader(register, sim.run(circuit))\n    .read(\"there\")\n    .fold(false)(_.probabilityOfOne ~= msg.probabilityOfOne))\n```\n\nHere we just setup a quantum circuit with a custom register of qubits, ran it in the quantum simulator, and then peeked at the *superposition* probability of a \"there\" qubit.\n\n## Getting Started\n\nTo learn more about installing and using Scotty please [check out the official docs](https://www.entangled.xyz/scotty/).\n\n## Contributing\n\nContributions are super welcome! Take a look at the current issues and if you'd like to help please submit a pull request with some tests covering your implementation.\n\n## License\n\nScotty is available under the Apache 2.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentangled-xyz%2Fscotty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentangled-xyz%2Fscotty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentangled-xyz%2Fscotty/lists"}