Skip to content

Commit

Permalink
updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
ilumary committed Jun 4, 2024
1 parent a392b33 commit b74c110
Showing 1 changed file with 29 additions and 19 deletions.
48 changes: 29 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<h1>
<br>
<br>
Taurus (Bachelor Thesis)
<br>
Expand All @@ -8,48 +7,59 @@
<img src="https://coconucos.cs.hhu.de/lehre/bigdata/resources/img/hhu-logo.svg" width=300>
</div>

<h4>A self made implementation of <a href="https://datatracker.ietf.org/doc/html/rfc9000">QUIC</a> in Rust following RFC 9000 and 9001, accompanied by my bachelors thesis.</h4>

<p>
<a href="#bachelor-thesis">Bachelor Thesis</a> |
<a href="#key-features">Key Features</a> |
<a href="#how-to-use">Build</a> |
<a href="#credits">Credits</a> |
<a href="#related">Related</a> |
<a href="#license">License</a>
</p>
<h4>A self made implementation of <a href="https://datatracker.ietf.org/doc/html/rfc9000">QUIC</a> Version 1 in Rust following RFC 9000 and 9001, accompanied by my bachelors thesis. For now, this is purely a research project and in no way intended for commercial use!</h4>

## Bachelor Thesis (Completed)
This repository contains my bachelor thesis. It has the title "Development Of A Minimal QUIC Implementation In Rust: An Introduction To Next Generation Networking" and covers the design and connection mechanics of QUIC as well as details of my implementation as of the submit date. The rendered pdf can be found in the `document` subdirectory.
This repository contains my bachelor thesis from Heinrich-Heine Universität Düsseldorf, Germany. It has the title <b>"Development Of A Minimal QUIC Implementation In Rust: An Introduction To Next Generation Networking"</b>, is written in english, and covers the design and connection mechanics of QUIC as well as details of my implementation as of the submit date. The rendered pdf can be found in the `document` subdirectory. It may also be helpful to those who simply want to get started with QUIC without using the RFCs directly.

## Key Features (In Development)

The QUIC library is still in a very early development stage and a majority of the features required for any kind of meaningful use are not yet implemented. As I lack the resources of the likes of Amazon, Cloudflare and co, development may only progress slowly. Currently in Development are:

* QUIC 1-RTT Handshake
* Full TLS 1.3 Integration using <a href="https://github.com/rustls/rustls">rustls</a>
* Server and Client API for easy integration with HTTP/3 or other Application Protocols

The Server API design (Client API coming sometime in the future) is heavily inspired by <a href="https://github.com/aws/s2n-quic">Amazons QUIC API design</a>. As of now it is still in development and neither fully functional nor feature complete.

## Contributing

Feel free to open a <a href="https://github.com/ilumary/taurus/pulls">pull request</a> or report an <a href="https://github.com/ilumary/taurus/issues">issue</a>. All contributions are welcome!

## Build

Building requires a recent version of rustc (1.72.0):
Building requires a recent version of rustc (>=1.72.0):

```bash
# Clone this repository
# Clone & Build
$ git clone https://github.com/ilumary/taurus.git
$ cd taurus/project/

# Run
$ cargo run
$ cd taurus/project/ && cargo build
```

> **Note**
> Windows can't be officially supported. Rust should work cross platform though.
## Run

Currently the Client API is not yet implemented. Therefore one has to use an external QUIC implementation to act as Client. I recommend [quinn](https://github.com/quinn-rs/quinn). The local server implementation can be found in [`main.rs`](./project/src/main.rs).

```bash
# Start the server
~/taurus/project/ $ cargo run
```

```bash
# Start client
~/quinn/ $ cargo run --example client https://127.0.0.1:34254/
```

## Credits

This software uses the following open source packages:
Taurus uses the following open source packages:

- [rustls](https://github.com/rustls/rustls/)
- [octets](https://docs.rs/octets/latest/octets/)
- [ring](https://github.com/briansmith/ring/)

## Collaborators

Expand Down

0 comments on commit b74c110

Please sign in to comment.