README.md
DEPRECATION NOTICE
This repository is deprecated.
For the Modern QDK repository, please visit Microsoft/qsharp.
You can also try out the Modern QDK in VS Code for Web at vscode.dev/quantum.
For more information about the Modern QDK and Azure Quantum, visit https://aka.ms/AQ/Documentation.
Classic QDK
This repository contains the IQ# kernel for the Quantum Development Kit. This kernel provides Q# support for the Jupyter platform, as well as the backend used by the Python client for Q#.
- src/Core/: Core of the IQ# kernel.
- src/Kernel/: Assembly used to interoperate between Jupyter and the rest of the IQ# kernel.
- src/Python/: Python package for accessing IQ#.
- src/Tests/: Unit tests for IQ#.
- src/Tool/: .NET Global Tool used to install and launch IQ#.
- src/Web/: Provides a RESTful API into IQ#.
New to Quantum?
See the introduction to quantum computing provided with the Quantum Development Kit.
Getting Started
The Jupyter kernel provided in this repository is built using .NET 6.0 and the compiler infrastructure provided with the Quantum Development Kit. Please see the getting started guide for how to get up and running.
You may also visit the microsoft/quantum repository, which offers a wide variety of samples on how to use this kernel to run Q# in Jupyter Notebooks, or from Python.
Building IQ# from Source
To obtain prerequisites, ensure that Node.js is installed, and then run npm install
from the src/Kernel/ folder:
cd src/Kernel/
npm install
To build IQ# from Visual Studio 2017 or later, please use the iqsharp.sln
solution file.
To build using the .NET SDK, please run dotnet build iqsharp.sln
.
In either case, the IQ# kernel can be installed by using dotnet run
:
cd src/Tool/
dotnet run -- install
Optionally, you can install IQ# in development mode, which instructs the Jupyter platform to rebuild IQ# whenever a new kernel is started:
cd src/Tool/
dotnet run -- install --develop
This can cause some issues, especially when running multiple instances of IQ#, such that we recommend against using development mode in general usage.
Note that when building IQ# from source, this repository is configured so that .NET will automatically look at the Quantum Development Kit prerelease feed in addition to any other feeds you may have configured.
Using IQ# as a Container
This repository provides a Dockerfile that includes the .NET SDK, Python, Jupyter Notebook, and the IQ# kernel.
The image built from this Dockerfile is hosted on the Microsoft Container Registry as the quantum/iqsharp-base
repository.
The iqsharp-base
image can be used, for instance, to quickly enable using Binder with Q#-language repositories, or as a base image for Visual Studio Code Development Containers.
To use the iqsharp-base
image in your own Dockerfile, make sure to begin your Dockerfile with a FROM
line that points to the Microsoft Container Registry:
FROM mcr.microsoft.com/quantum/iqsharp-base:latest
To use the iqsharp-base
image as a development container for Visual Studio Code, add a .devcontainer
folder that points to the Microsoft Container Registry:
{
"image": "mcr.microsoft.com/quantum/iqsharp-base:latest",
"extensions": [
"quantum.quantum-devkit-vscode",
"ms-vscode.csharp"
]
}
In either case, you can also use a Quantum Development Kit version number (0.8 or later) in place of latest
to point to a specific version.
Build Status
branch | status |
---|---|
main |
Feedback
If you have feedback about IQ#, please let us know by filing a new issue! If you have feedback about some other part of the Microsoft Quantum Development Kit, please see the contribution guide for more information.
Legal and Licensing
Telemetry
By default, IQ# collects information about the runtime performance of IQ#. To opt-out of sending telemetry, create an environment variable called IQSHARP_TELEMETRY_OPT_OUT set to a value of 1 before starting IQ#. The telemetry we collect falls under the Microsoft Privacy Statement.
Data Collection
The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
For more details, please see CONTRIBUTING.md, or the contribution guide.