Snowflurry Logo

Snowflurry

An open-source framework for hybrid quantum/classical applications in Julia

ghz.jl
bell_state.jl
using Snowflurry
c = QuantumCircuit(qubit_count = 3)
push!(c, hadamard(1), control_x(1, 2), control_x(2, 3))
push!(c, readout(1, 1), readout(2, 2), readout(3, 3))
qpu = VirtualQPU()
shot_count = 101
result = run_job(qpu, c, shot_count)

Introduction

Snowflurry.jl

Snowflurry is an open-source framework for hybrid quantum/classical application. The Snowflurry.jl library is the primary product of this framework and is written in Julia. Julia is a modern programming language for high performance computing which offers the ease of programming of Python but runs at speeds close to C.

Installation

Step-by-step guides to setting up your system and installing the library.

Tutorials

Get started with Snowflurry.

Library reference

A detailed reference on all the things the library has to offer.

Contribute

Learn how to contribute to the library.


Quick start

Installing Julia

Make sure your system has Julia installed. If not, download the latest version from https://julialang.org/downloads/.

We officially support the latest stable release and the latest Long-Term Support (LTS) release. Any release in-between should work (please submit a github issue if they don't), but we only actively test against the LTS and the latest stable version.

Installing Snowflurry.jl package

The latest release of Snowflurry can be pulled from JuliaHub and installed with the following command:

import Pkg
Pkg.add("Snowflurry")

This adds the Snowflurry package to the current Julia Environment.

Snowflurry is under active development. To use the development version, the main branch from Github can be installed instead using the following commands in the Julia REPL:

import Pkg
Pkg.add(url="https://github.com/SnowflurrySDK/Snowflurry.jl", rev="main")

Warning: The main branch of Snowflurry targets new internal infrastructure. Existing users should use the latest stable release instead.

Installing SnowflurryPlots.jl package

Multiple visualization tools are available in the SnowflurryPlots package. After installing Snowflurry, the SnowflurryPlots package can be installed by entering the following in the Julia REPL:

import Pkg
Pkg.add(url="https://github.com/SnowflurrySDK/SnowflurryPlots.jl", rev="main")

Tutorials

A typical workflow to execute a quantum circuit on a quantum service consists of these three steps.

  • Create: Build the circuit using quantum gates.

  • Transpile: transform the circuit into an equivalent one, but with improved performance and ensuring compatibility with the chosen quantum service.

  • Execute: Run the compiled circuits on the specified quantum service. The quantum service could be a remote quantum hardware or a local simulator.

Now, head to the Basics page to get started on the tutorials.

Roadmap

See what we have planned by looking at the Snowflurry Github Project.

Snowflurry Contributors Community

We welcome contributions! If you are interested in contributing to this project, a good place to start is to read our How to Contribute page.

We are dedicated to cultivating an open and inclusive community to build software for near term quantum computers. Please read our Code of Conduct for the rules of engagement within our community.

Alpha Disclaimer

Snowflurry is currently in alpha. We may change or remove parts of Snowflurry's API when making new releases.