Readme and Build Doc Improvements (#143)

This commit is contained in:
Nick Banks 2020-02-14 14:41:25 -08:00 коммит произвёл GitHub
Родитель 7309f173c1
Коммит 70b2f682e8
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 28 добавлений и 29 удалений

Просмотреть файл

@ -30,39 +30,16 @@ QUIC has many benefits when compared to existing TLS over TCP scenarios:
## Library Features
* Cross-platform support.
* Optimized for client and server.
* Optimized for maximal throughput and minimal latency.
* Asynchronous IO.
* Receive side scaling (RSS).
* UDP send and receive coalescing support.
## Building
You can find detailed instructions for building the library [here](./docs/BUILD.md).
## Documentation
You can find more detailed information on how to use MsQuic in the [the API documentation](./docs/API.md).
## Source Code
The source (found in the `src` directory) is divided into several directories:
* `bin` - Packages up all static libraries into the platform specific binaries.
* `core` - Platform independent code that implements the QUIC protocol.
* `inc` - Header files used by all the other directories.
* `manifest` - Windows [ETW manifest](https://docs.microsoft.com/en-us/windows/win32/wes/writing-an-instrumentation-manifest) and related files.
* `platform` - Platform specific code for OS types, sockets and TLS.
* `submodules` - All the modules that MsQuic depends on.
* `test` - Test code for the MsQuic API / protocol.
* `tools` - Tools for exercising MsQuic.
* `attack` - Adversarial tool for exploiting protocol weaknesses.
* `etw` - Windows specific tool for processing MsQuic ETW logs.
* `interop` - Runs through the [IETF interop scenarios](https://github.com/quicwg/base-drafts/wiki/16th-Implementation-Draft).
* `ping` - Simple tool for gathering throughput measurements. Read more [here](./tools/ping/readme.md).
* `reach` - Tests for QUIC reachability of a server for several well-known ALPNs.
* `sample` - Minimal example of how to use the MsQuic API.
* `spin` - Randomly executes the MsQuic API to discover bugs.
* `void` - Randomly starts and stops the server to discover bugs.
* For building the library, see the [Build docs](./docs/BUILD.md).
* For using the library, see the [API docs](./docs/API.md).
# Contributing

Просмотреть файл

@ -5,11 +5,31 @@ MsQuic uses [CMake](https://cmake.org/) to generate build files.
> **Note** - clone the repo recursively or run `git submodule update --init --recursive`
to get all the submodules.
# PowerShell (6 or greater) Requirement
## Source Code
The source (found in the `src` directory) is divided into several directories:
* `bin` - Packages up all static libraries into the platform specific binaries.
* `core` - Platform independent code that implements the QUIC protocol.
* `inc` - Header files used by all the other directories.
* `manifest` - Windows [ETW manifest](https://docs.microsoft.com/en-us/windows/win32/wes/writing-an-instrumentation-manifest) and related files.
* `platform` - Platform specific code for OS types, sockets and TLS.
* `test` - Test code for the MsQuic API / protocol.
* `tools` - Tools for exercising MsQuic.
* `attack` - Adversarial tool for exploiting protocol weaknesses.
* `etw` - Windows specific tool for processing MsQuic ETW logs.
* `interop` - Runs through the [IETF interop scenarios](https://github.com/quicwg/base-drafts/wiki/16th-Implementation-Draft).
* `ping` - Simple tool for gathering throughput measurements. Read more [here](../src/tools/ping/readme.md).
* `reach` - Tests for QUIC reachability of a server for several well-known ALPNs.
* `sample` - Minimal example of how to use the MsQuic API.
* `spin` - Randomly executes the MsQuic API to discover bugs.
* `void` - Randomly starts and stops the server to discover bugs.
## PowerShell (6 or greater) Requirement
MsQuic uses several cross platform PowerShell build scripts to simplify build and test operations. PowerShell 6 or greater will need to be installed for them to work.
## Install on Windows
### Install on Windows
You can install PowerShell 7.0 on Windows by running the following **PowerShell** script:
@ -19,7 +39,7 @@ iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Preview"
Then you will need to manually launch "PowerShell 7" to continue.
## Install on Linux
### Install on Linux
You find the full installation instructions for PowerShell on Linux [here](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?). For Ubuntu you can run the following:
@ -70,6 +90,8 @@ For the very first time you build, it's recommend to make sure you have all the
```
### Additional Requirements on Windows
* [CMake](https://cmake.org/)
* [Visual Studio 2019](https://www.visualstudio.com/vs/) or higher
* Latest [Windows Insider](https://insider.windows.com/en-us/) builds.