Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tqsd/QuNetSim
A quantum network simulation framework.
https://github.com/tqsd/QuNetSim
quantum-internet quantum-network-simulator unitaryfund
Last synced: 3 months ago
JSON representation
A quantum network simulation framework.
- Host: GitHub
- URL: https://github.com/tqsd/QuNetSim
- Owner: tqsd
- License: mit
- Created: 2019-11-20T14:12:22.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-02T21:30:07.000Z (10 months ago)
- Last Synced: 2024-05-14T07:22:01.628Z (9 months ago)
- Topics: quantum-internet, quantum-network-simulator, unitaryfund
- Language: Python
- Homepage: https://tqsd.github.io/QuNetSim/
- Size: 11.4 MB
- Stars: 113
- Watchers: 9
- Forks: 50
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- quantum-awesome - https://github.com/tqsd/QuNetSim
README
[![Unitary Fund](https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=for-the-badge)](http://unitary.fund)
# QuNetSim![QuNetSim Tests](https://github.com/tqsd/QuNetSim/workflows/QuNetSim%20Tests/badge.svg)
QuNetSim is a quantum-enabled network simulator that adds common quantum networking tasks like teleportation, superdense coding, sharing EPR pairs, etc. With QuNetSim, one can design and test robust quantum network protocols under various network conditions.
## Installation and Documentation
See https://tqsd.github.io/QuNetSim/ for documentation. To install the latest release via pip:
```
pip install qunetsim
```## Quick Start Guide
### Templater
The QuNetSim pip package comes with a templater. After installing the library, simply type `template` and follow the instructions. A template QuNetSim example will be generated.
### Quick Example
```
from qunetsim.components import Host, Networknetwork = Network.get_instance()
network.start()alice = Host('Alice')
bob = Host('Bob')alice.add_connection(bob.host_id)
bob.add_connection(alice.host_id)alice.start()
bob.start()network.add_hosts([alice, bob])
# Block Alice to wait for qubit arrive from Bob
alice.send_epr(bob.host_id, await_ack=True)
q_alice = alice.get_epr(bob.host_id)
q_bob = bob.get_epr(alice.host_id)print("EPR is in state: %d, %d" % (q_alice.measure(), q_bob.measure()))
network.stop(True)
```## Contributing
Feel free to contribute by adding Github issues and pull requests. Adding test cases for any contributions is a requirement for any pull request to be merged.
## Citation
```
@article{diadamo2020qunetsim,
title={QuNetSim: A Software Framework for Quantum Networks},
author={DiAdamo, Stephen and N{\"o}tzel, Janis and Zanger, Benjamin and Be{\c{s}}e, Mehmet Mert},
journal={IEEE Transactions on Quantum Engineering},
year={2021},
doi={10.1109/TQE.2021.3092395}
}
```