diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 1f412bf6b5f0f49f15555a8a5e4d50c1daa1cdb1..0000000000000000000000000000000000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-init:
-- git config --global core.autocrlf true
-branches:
-  only:
-  - dev
-  - /^release\/.*$/
-  - /^(.*\/)?ci-.*$/
-build_script:
-- ps: .\run.ps1 -ci default-build
-clone_depth: 1
-test: 'off'
-deploy: 'off'
-os: Visual Studio 2017
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index c2f0f842733722e938843c1ed4200970ade11837..0000000000000000000000000000000000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,52 +0,0 @@
-*.doc  diff=astextplain
-*.DOC	diff=astextplain
-*.docx	diff=astextplain
-*.DOCX	diff=astextplain
-*.dot	diff=astextplain
-*.DOT	diff=astextplain
-*.pdf	diff=astextplain
-*.PDF	diff=astextplain
-*.rtf	diff=astextplain
-*.RTF	diff=astextplain
-
-*.jpg  	binary
-*.png 	binary
-*.gif 	binary
-
-*.cs text=auto diff=csharp 
-*.vb text=auto
-*.resx text=auto
-*.c text=auto
-*.cpp text=auto
-*.cxx text=auto
-*.h text=auto
-*.hxx text=auto
-*.py text=auto
-*.rb text=auto
-*.java text=auto
-*.html text=auto
-*.htm text=auto
-*.css text=auto
-*.scss text=auto
-*.sass text=auto
-*.less text=auto
-*.js text=auto
-*.lisp text=auto
-*.clj text=auto
-*.sql text=auto
-*.php text=auto
-*.lua text=auto
-*.m text=auto
-*.asm text=auto
-*.erl text=auto
-*.fs text=auto
-*.fsx text=auto
-*.hs text=auto
-
-*.csproj text=auto
-*.vbproj text=auto
-*.fsproj text=auto
-*.dbproj text=auto
-*.sln text=auto eol=crlf
-
-*.sh eol=lf
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 708c4155fa70e0ddfb9e47441bb7603f4b13465f..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1,37 +0,0 @@
-[Oo]bj/
-[Bb]in/
-TestResults/
-.nuget/
-*.sln.ide/
-_ReSharper.*/
-.idea/
-packages/
-artifacts/
-PublishProfiles/
-.vs/
-*.user
-*.suo
-*.cache
-*.docstates
-_ReSharper.*
-nuget.exe
-*net45.csproj
-*net451.csproj
-*k10.csproj
-*.psess
-*.vsp
-*.pidb
-*.userprefs
-*DS_Store
-*.ncrunchsolution
-*.*sdf
-*.ipch
-*.swp
-*~
-.build/
-.testPublish/
-launchSettings.json
-BenchmarkDotNet.Artifacts/
-BDN.Generated/
-binaries/
-global.json
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 3b3d7d726bd1d4242473ad8f8e85f4c5f5d82ebd..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-language: csharp
-sudo: required
-dist: trusty
-services:
-- docker
-addons:
-  apt:
-    packages:
-    - libunwind8
-mono: none
-os:
-- linux
-- osx
-osx_image: xcode8.2
-branches:
-  only:
-  - dev
-  - /^release\/.*$/
-  - /^(.*\/)?ci-.*$/
-before_install:
-- if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s
-  /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
-  /usr/local/lib/; fi
-script:
-- ./build.sh --ci
-- if test "$TRAVIS_OS_NAME" != "osx"; then bash test/SystemdActivation/docker.sh;
-  fi
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
deleted file mode 100644
index e69a4b3fda6e9d622fd56297ffbe7e58f8942961..0000000000000000000000000000000000000000
--- a/.vscode/extensions.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "recommendations": [
-    "ms-vscode.csharp",
-    "EditorConfig.EditorConfig",
-    "k--kato.docomment",
-    "PeterJausovec.vscode-docker"
-  ]
-}
diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index db6faceb9c78bbfa943e6907820b2f8b574b7794..0000000000000000000000000000000000000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{
-  "version": "0.2.0",
-  "configurations": [
-    {
-      "name": "Attach: .NET Core",
-      "type": "coreclr",
-      "request": "attach",
-      "processId": "${command:pickProcess}"
-    },
-    {
-      "name": "Attach: .NET Framework",
-      "type": "clr",
-      "request": "attach",
-      "processId": "${command:pickProcess}"
-    },
-    {
-      "name": "Debug: TlsApp",
-      "type": "coreclr",
-      "request": "launch",
-      "program": "${workspaceRoot}/samples/TlsApp/bin/Debug/netcoreapp2.0/TlsApp.dll",
-      "cwd": "${workspaceRoot}/samples/TlsApp",
-      "console": "internalConsole",
-      "stopAtEntry": false,
-      "internalConsoleOptions": "openOnSessionStart",
-      "launchBrowser": {
-        "enabled": true,
-        "args": "https://127.0.0.1:5000",
-        "windows": {
-          "command": "cmd.exe",
-          "args": "/C start ${auto-detect-url}"
-        },
-        "osx": {
-          "command": "open"
-        },
-        "linux": {
-          "command": "xdg-open"
-        }
-      }
-    },
-    {
-      "name": "Debug: SampleApp",
-      "type": "coreclr",
-      "request": "launch",
-      "preLaunchTask": "Compile: solution",
-      "program": "${workspaceRoot}/samples/SampleApp/bin/Debug/netcoreapp2.0/SampleApp.dll",
-      "cwd": "${workspaceRoot}/samples/SampleApp",
-      "console": "internalConsole",
-      "stopAtEntry": false,
-      "internalConsoleOptions": "openOnSessionStart",
-      "launchBrowser": {
-        "enabled": true,
-        "args": "${auto-detect-url}",
-        "windows": {
-          "command": "cmd.exe",
-          "args": "/C start ${auto-detect-url}"
-        },
-        "osx": {
-          "command": "open"
-        },
-        "linux": {
-          "command": "xdg-open"
-        }
-      }
-    },
-    {
-      "name": "Debug: LargeResponseApp",
-      "type": "coreclr",
-      "request": "launch",
-      "preLaunchTask": "Compile: solution",
-      "program": "${workspaceRoot}/samples/LargeResponseApp/bin/Debug/netcoreapp2.0/LargeResponseApp.dll",
-      "cwd": "${workspaceRoot}/samples/LargeResponseApp",
-      "console": "internalConsole",
-      "stopAtEntry": false,
-      "internalConsoleOptions": "openOnSessionStart",
-      "launchBrowser": {
-        "enabled": true,
-        "args": "${auto-detect-url}",
-        "windows": {
-          "command": "cmd.exe",
-          "args": "/C start ${auto-detect-url}"
-        },
-        "osx": {
-          "command": "open"
-        },
-        "linux": {
-          "command": "xdg-open"
-        }
-      }
-    },
-    {
-      "name": "Debug: CodeGenerator",
-      "type": "coreclr",
-      "request": "launch",
-      "preLaunchTask": "Compile: CodeGenerator",
-      "program": "${workspaceRoot}/tools/CodeGenerator/bin/Debug/netcoreapp2.0/CodeGenerator.dll",
-      "args": [],
-      "cwd": "${workspaceRoot}",
-      "console": "internalConsole",
-      "stopAtEntry": true,
-      "internalConsoleOptions": "openOnSessionStart"
-    }
-  ]
-}
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 0c60b84e844dfdefa8819042a5d0ad24db387544..0000000000000000000000000000000000000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "[json]": {
-    "editor.tabSize": 2
-  },
-  "files.trimTrailingWhitespace": true,
-  "files.associations": {
-    "*.props": "xml",
-    "*.targets": "xml"
-  }
-}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
deleted file mode 100644
index 97f0b7ad07ee9a18cad579c3c919c06ec9546c49..0000000000000000000000000000000000000000
--- a/.vscode/tasks.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
-  "version": "2.0.0",
-  "options": {
-    "env": {
-      "DOTNET_SKIP_FIRST_TIME_EXPERIENCE": "true"
-    }
-  },
-  // requires that you first run build.cmd or build.sh to install local builds of dotnet
-  "windows": {
-    "command": "${env:USERPROFILE}/.dotnet/x64/dotnet.exe"
-  },
-  "osx": {
-    "command": "${env:HOME}/.dotnet/dotnet"
-  },
-  "linux": {
-    "command": "${env:HOME}/.dotnet/dotnet"
-  },
-  "suppressTaskName": true,
-  "tasks": [
-    {
-      "taskName": "Restore: solution",
-      "args": [
-        "restore"
-      ]
-    },
-    {
-      "taskName": "Compile: solution",
-      "group": {
-        "isDefault": true,
-        "kind": "build"
-      },
-      "presentation": {
-        "panel": "dedicated"
-      },
-      "args": [
-        "build",
-        "${workspaceRoot}/KestrelHttpServer.sln",
-        "/p:GenerateFullPaths=true"
-      ],
-      "problemMatcher": "$msCompile",
-      // these have to defined here because of https://github.com/Microsoft/vscode/issues/20740
-      "osx": {
-        "options": {
-          "env": {
-            // The location of .NET Framework reference assembiles.
-            // These may not be installed yet if you have not run build.sh.
-            "ReferenceAssemblyRoot": "${env:HOME}/.dotnet/buildtools/netfx/4.6.1/"
-          }
-        }
-      },
-      "linux": {
-        "options": {
-          "env": {
-            "ReferenceAssemblyRoot": "${env:HOME}/.dotnet/buildtools/netfx/4.6.1/"
-          }
-        }
-      }
-    },
-    {
-      "taskName": "Test",
-      "args": [
-        "test",
-        "/p:GenerateFullPaths=true"
-      ],
-      "problemMatcher": "$msCompile",
-      "group": "test"
-    },
-    {
-      "taskName": "Compile: CodeGenerator",
-      "args": [
-        "build",
-        "/p:GenerateFullPaths=true"
-      ],
-      "options": {
-        "cwd": "${workspaceRoot}/tools/CodeGenerator/"
-      },
-      "problemMatcher": "$msCompile"
-    },
-    {
-      "taskName": "Run: CodeGenerator",
-      "args": [
-        "run"
-      ],
-      "options": {
-        "cwd": "${workspaceRoot}/tools/CodeGenerator/"
-      }
-    },
-    {
-      "taskName": "Run: resx generation",
-      "suppressTaskName": true,
-      "command": "build.cmd",
-      "args": [
-        "/t:resx"
-      ],
-      "options": {
-        "cwd": "${workspaceRoot}"
-      },
-      "osx": {
-        "command": "./build.sh"
-      },
-      "linux": {
-        "command": "./build.sh"
-      }
-    },
-    {
-      "taskName": "Run: Benchmarks",
-      "args": [
-        "run",
-        "-c",
-        "Release"
-      ],
-      "options": {
-        "cwd": "${workspaceRoot}/test/Kestrel.Performance/"
-      }
-    }
-  ]
-}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 952d5b87f317e254ae21db5351baf0cad41c157e..0000000000000000000000000000000000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Contributing
-============
-
-Information on contributing to this repo is in the [Contributing Guide](https://github.com/aspnet/Home/blob/dev/CONTRIBUTING.md) in the Home repo.
diff --git a/Directory.Build.props b/Directory.Build.props
deleted file mode 100644
index 170752b08d140aa23e4938925ec5a64bf51abdb5..0000000000000000000000000000000000000000
--- a/Directory.Build.props
+++ /dev/null
@@ -1,21 +0,0 @@
-<Project>
-  <Import
-    Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))\AspNetCoreSettings.props"
-    Condition=" '$(CI)' != 'true' AND '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))' != '' " />
-
-  <Import Project="version.props" />
-  <Import Project="build\dependencies.props" />
-  <Import Project="build\sources.props" />
-
-  <PropertyGroup>
-    <Product>Microsoft ASP.NET Core</Product>
-    <RepositoryUrl>https://github.com/aspnet/KestrelHttpServer</RepositoryUrl>
-    <RepositoryType>git</RepositoryType>
-    <RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
-    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)build\Key.snk</AssemblyOriginatorKeyFile>
-    <SignAssembly>true</SignAssembly>
-    <PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-    <LangVersion>latest</LangVersion>
-  </PropertyGroup>
-</Project>
diff --git a/Directory.Build.targets b/Directory.Build.targets
deleted file mode 100644
index 53b3f6e1dabae0bb4e5f8a2cdf3ce1cea06375c1..0000000000000000000000000000000000000000
--- a/Directory.Build.targets
+++ /dev/null
@@ -1,7 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(MicrosoftNETCoreApp20PackageVersion)</RuntimeFrameworkVersion>
-    <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">$(MicrosoftNETCoreApp21PackageVersion)</RuntimeFrameworkVersion>
-    <NETStandardImplicitPackageVersion Condition=" '$(TargetFramework)' == 'netstandard2.0' ">$(NETStandardLibrary20PackageVersion)</NETStandardImplicitPackageVersion>
-  </PropertyGroup>
-</Project>
diff --git a/KestrelHttpServer.sln b/KestrelHttpServer.sln
deleted file mode 100644
index 41323981f7889d03df7e9fcf4cf18fdbf3c3a8a0..0000000000000000000000000000000000000000
--- a/KestrelHttpServer.sln
+++ /dev/null
@@ -1,412 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2010
-MinimumVisualStudioVersion = 15.0.26730.03
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{7972A5D6-3385-4127-9277-428506DD44FF}"
-	ProjectSection(SolutionItems) = preProject
-		.appveyor.yml = .appveyor.yml
-		.gitattributes = .gitattributes
-		.gitignore = .gitignore
-		.travis.yml = .travis.yml
-		build.cmd = build.cmd
-		build.ps1 = build.ps1
-		build.sh = build.sh
-		CONTRIBUTING.md = CONTRIBUTING.md
-		Directory.Build.props = Directory.Build.props
-		Directory.Build.targets = Directory.Build.targets
-		LICENSE.txt = LICENSE.txt
-		NuGet.Config = NuGet.Config
-		NuGetPackageVerifier.json = NuGetPackageVerifier.json
-		README.md = README.md
-		ToProjectReferences.ps1 = ToProjectReferences.ps1
-		version.xml = version.xml
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2D5D5227-4DBD-499A-96B1-76A36B03B750}"
-	ProjectSection(SolutionItems) = preProject
-		src\Directory.Build.props = src\Directory.Build.props
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{D3273454-EA07-41D2-BF0B-FCC3675C2483}"
-	ProjectSection(SolutionItems) = preProject
-		test\Directory.Build.props = test\Directory.Build.props
-		test\xunit.runner.json = test\xunit.runner.json
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{327F7880-D9AF-46BD-B45C-3B7E34A01DFD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shared", "shared", "{0EF2ACDF-012F-4472-A13A-4272419E2903}"
-	ProjectSection(SolutionItems) = preProject
-		test\shared\DummyApplication.cs = test\shared\DummyApplication.cs
-		test\shared\HttpParsingData.cs = test\shared\HttpParsingData.cs
-		test\shared\KestrelTestLoggerProvider.cs = test\shared\KestrelTestLoggerProvider.cs
-		test\shared\LifetimeNotImplemented.cs = test\shared\LifetimeNotImplemented.cs
-		test\shared\MockConnectionInformation.cs = test\shared\MockConnectionInformation.cs
-		test\shared\MockLogger.cs = test\shared\MockLogger.cs
-		test\shared\MockSystemClock.cs = test\shared\MockSystemClock.cs
-		test\shared\StringExtensions.cs = test\shared\StringExtensions.cs
-		test\shared\TestApp.cs = test\shared\TestApp.cs
-		test\shared\TestApplicationErrorLogger.cs = test\shared\TestApplicationErrorLogger.cs
-		test\shared\TestConnection.cs = test\shared\TestConnection.cs
-		test\shared\TestFrame.cs = test\shared\TestFrame.cs
-		test\shared\TestKestrelTrace.cs = test\shared\TestKestrelTrace.cs
-		test\shared\TestResources.cs = test\shared\TestResources.cs
-		test\shared\TestServiceContext.cs = test\shared\TestServiceContext.cs
-	EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Core", "src\Kestrel.Core\Kestrel.Core.csproj", "{F510611A-3BEE-4B88-A613-5F4A74ED82A1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Core.Tests", "test\Kestrel.Core.Tests\Kestrel.Core.Tests.csproj", "{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleApp", "samples\SampleApp\SampleApp.csproj", "{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LargeResponseApp", "samples\LargeResponseApp\LargeResponseApp.csproj", "{B35D4D31-E74C-4646-8A11-7A7A40F0021E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeGenerator", "tools\CodeGenerator\CodeGenerator.csproj", "{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Https", "src\Kestrel.Https\Kestrel.Https.csproj", "{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Performance", "benchmarks\Kestrel.Performance\Kestrel.Performance.csproj", "{EBFE9719-A44B-4978-A71F-D5C254E7F35A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestCertificates", "TestCertificates", "{2822C132-BFFB-4D53-AC5B-E7E47DD81A6E}"
-	ProjectSection(SolutionItems) = preProject
-		test\shared\TestCertificates\eku.client.ini = test\shared\TestCertificates\eku.client.ini
-		test\shared\TestCertificates\eku.client.pfx = test\shared\TestCertificates\eku.client.pfx
-		test\shared\TestCertificates\eku.code_signing.ini = test\shared\TestCertificates\eku.code_signing.ini
-		test\shared\TestCertificates\eku.code_signing.pfx = test\shared\TestCertificates\eku.code_signing.pfx
-		test\shared\TestCertificates\eku.multiple_usages.ini = test\shared\TestCertificates\eku.multiple_usages.ini
-		test\shared\TestCertificates\eku.multiple_usages.pfx = test\shared\TestCertificates\eku.multiple_usages.pfx
-		test\shared\TestCertificates\eku.server.ini = test\shared\TestCertificates\eku.server.ini
-		test\shared\TestCertificates\eku.server.pfx = test\shared\TestCertificates\eku.server.pfx
-		test\shared\TestCertificates\make-test-certs.sh = test\shared\TestCertificates\make-test-certs.sh
-		test\shared\TestCertificates\no_extensions.ini = test\shared\TestCertificates\no_extensions.ini
-		test\shared\TestCertificates\no_extensions.pfx = test\shared\TestCertificates\no_extensions.pfx
-		test\shared\TestCertificates\testCert.pfx = test\shared\TestCertificates\testCert.pfx
-	EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Transport.Libuv", "src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj", "{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel", "src\Kestrel\Kestrel.csproj", "{56139957-5C29-4E7D-89BD-7D20598B4EAF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Transport.Sockets", "src\Kestrel.Transport.Sockets\Kestrel.Transport.Sockets.csproj", "{6950B18F-A3D2-41A4-AFEC-8B7C49517611}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Transport.Abstractions", "src\Kestrel.Transport.Abstractions\Kestrel.Transport.Abstractions.csproj", "{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Transport.Libuv.Tests", "test\Kestrel.Transport.Libuv.Tests\Kestrel.Transport.Libuv.Tests.csproj", "{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Tests", "test\Kestrel.Tests\Kestrel.Tests.csproj", "{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{A95C3BE1-B850-4265-97A0-777ADCCD437F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connections.Abstractions", "src\Connections.Abstractions\Connections.Abstractions.csproj", "{6956CF5C-3163-4398-8628-4ECA569245B5}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{C2910A13-B2C2-46D8-81D8-7E166F4F5981}"
-	ProjectSection(SolutionItems) = preProject
-		build\dependencies.props = build\dependencies.props
-		build\repo.props = build\repo.props
-		build\repo.targets = build\repo.targets
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SystemdActivation", "SystemdActivation", "{B7B0EA74-528F-46B8-9BC4-909D9A67C194}"
-	ProjectSection(SolutionItems) = preProject
-		test\SystemdActivation\docker-entrypoint.sh = test\SystemdActivation\docker-entrypoint.sh
-		test\SystemdActivation\docker.sh = test\SystemdActivation\docker.sh
-		test\SystemdActivation\Dockerfile = test\SystemdActivation\Dockerfile
-	EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Transport.Libuv.FunctionalTests", "test\Kestrel.Transport.Libuv.FunctionalTests\Kestrel.Transport.Libuv.FunctionalTests.csproj", "{74032D79-8EA7-4483-BD82-C38370420FFF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kestrel.Transport.Sockets.FunctionalTests", "test\Kestrel.Transport.Sockets.FunctionalTests\Kestrel.Transport.Sockets.FunctionalTests.csproj", "{9C7B6B5F-088A-436E-834B-6373EA36DEEE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Http2SampleApp", "samples\Http2SampleApp\Http2SampleApp.csproj", "{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SystemdTestApp", "samples\SystemdTestApp\SystemdTestApp.csproj", "{A7994A41-CAF8-47A7-8975-F101F75B5BC1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PlaintextApp", "samples\PlaintextApp\PlaintextApp.csproj", "{CE5523AE-6E38-4E20-998F-C64E02C5CC51}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PlatformBenchmarks", "benchmarkapps\PlatformBenchmarks\PlatformBenchmarks.csproj", "{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|Any CPU = Release|Any CPU
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Debug|x64.Build.0 = Debug|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Debug|x86.Build.0 = Debug|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Release|x64.ActiveCfg = Release|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Release|x64.Build.0 = Release|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Release|x86.ActiveCfg = Release|Any CPU
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1}.Release|x86.Build.0 = Release|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Debug|x64.Build.0 = Debug|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Debug|x86.Build.0 = Debug|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Release|x64.ActiveCfg = Release|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Release|x64.Build.0 = Release|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Release|x86.ActiveCfg = Release|Any CPU
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE}.Release|x86.Build.0 = Release|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Debug|x64.Build.0 = Debug|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Debug|x86.Build.0 = Debug|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Release|x64.ActiveCfg = Release|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Release|x64.Build.0 = Release|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Release|x86.ActiveCfg = Release|Any CPU
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3}.Release|x86.Build.0 = Release|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Debug|x64.Build.0 = Debug|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Debug|x86.Build.0 = Debug|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Release|x64.ActiveCfg = Release|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Release|x64.Build.0 = Release|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Release|x86.ActiveCfg = Release|Any CPU
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E}.Release|x86.Build.0 = Release|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Debug|x64.Build.0 = Debug|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Debug|x86.Build.0 = Debug|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Release|x64.ActiveCfg = Release|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Release|x64.Build.0 = Release|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Release|x86.ActiveCfg = Release|Any CPU
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C}.Release|x86.Build.0 = Release|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Debug|x64.Build.0 = Debug|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Debug|x86.Build.0 = Debug|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Release|x64.ActiveCfg = Release|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Release|x64.Build.0 = Release|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Release|x86.ActiveCfg = Release|Any CPU
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA}.Release|x86.Build.0 = Release|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Debug|x64.Build.0 = Debug|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Debug|x86.Build.0 = Debug|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Release|x64.ActiveCfg = Release|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Release|x64.Build.0 = Release|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Release|x86.ActiveCfg = Release|Any CPU
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A}.Release|x86.Build.0 = Release|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Debug|x64.Build.0 = Debug|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Debug|x86.Build.0 = Debug|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Release|x64.ActiveCfg = Release|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Release|x64.Build.0 = Release|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Release|x86.ActiveCfg = Release|Any CPU
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4}.Release|x86.Build.0 = Release|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Debug|x64.Build.0 = Debug|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Debug|x86.Build.0 = Debug|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Release|Any CPU.Build.0 = Release|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Release|x64.ActiveCfg = Release|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Release|x64.Build.0 = Release|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Release|x86.ActiveCfg = Release|Any CPU
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF}.Release|x86.Build.0 = Release|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Debug|x64.Build.0 = Debug|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Debug|x86.Build.0 = Debug|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Release|x64.ActiveCfg = Release|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Release|x64.Build.0 = Release|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Release|x86.ActiveCfg = Release|Any CPU
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611}.Release|x86.Build.0 = Release|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Debug|x64.Build.0 = Debug|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Debug|x86.Build.0 = Debug|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Release|x64.ActiveCfg = Release|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Release|x64.Build.0 = Release|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Release|x86.ActiveCfg = Release|Any CPU
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D}.Release|x86.Build.0 = Release|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Debug|x64.Build.0 = Debug|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Debug|x86.Build.0 = Debug|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Release|x64.ActiveCfg = Release|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Release|x64.Build.0 = Release|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Release|x86.ActiveCfg = Release|Any CPU
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4}.Release|x86.Build.0 = Release|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Debug|x64.Build.0 = Debug|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Debug|x86.Build.0 = Debug|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Release|x64.ActiveCfg = Release|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Release|x64.Build.0 = Release|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Release|x86.ActiveCfg = Release|Any CPU
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC}.Release|x86.Build.0 = Release|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Debug|x64.Build.0 = Debug|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Debug|x86.Build.0 = Debug|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Release|x64.ActiveCfg = Release|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Release|x64.Build.0 = Release|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Release|x86.ActiveCfg = Release|Any CPU
-		{6956CF5C-3163-4398-8628-4ECA569245B5}.Release|x86.Build.0 = Release|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Debug|x64.Build.0 = Debug|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Debug|x86.Build.0 = Debug|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Release|Any CPU.Build.0 = Release|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Release|x64.ActiveCfg = Release|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Release|x64.Build.0 = Release|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Release|x86.ActiveCfg = Release|Any CPU
-		{74032D79-8EA7-4483-BD82-C38370420FFF}.Release|x86.Build.0 = Release|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Debug|x64.Build.0 = Debug|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Debug|x86.Build.0 = Debug|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Release|x64.ActiveCfg = Release|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Release|x64.Build.0 = Release|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Release|x86.ActiveCfg = Release|Any CPU
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE}.Release|x86.Build.0 = Release|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Debug|x64.Build.0 = Debug|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Debug|x86.Build.0 = Debug|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Release|x64.ActiveCfg = Release|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Release|x64.Build.0 = Release|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Release|x86.ActiveCfg = Release|Any CPU
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA}.Release|x86.Build.0 = Release|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Debug|x64.Build.0 = Debug|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Debug|x86.Build.0 = Debug|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Release|x64.ActiveCfg = Release|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Release|x64.Build.0 = Release|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Release|x86.ActiveCfg = Release|Any CPU
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1}.Release|x86.Build.0 = Release|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Debug|x64.Build.0 = Debug|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Debug|x86.Build.0 = Debug|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Release|Any CPU.Build.0 = Release|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Release|x64.ActiveCfg = Release|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Release|x64.Build.0 = Release|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Release|x86.ActiveCfg = Release|Any CPU
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51}.Release|x86.Build.0 = Release|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Debug|x64.Build.0 = Debug|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Debug|x86.Build.0 = Debug|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Release|x64.ActiveCfg = Release|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Release|x64.Build.0 = Release|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Release|x86.ActiveCfg = Release|Any CPU
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D}.Release|x86.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{F510611A-3BEE-4B88-A613-5F4A74ED82A1} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{37F3BFB2-6454-49E5-9D7F-581BF755CCFE} = {D3273454-EA07-41D2-BF0B-FCC3675C2483}
-		{2C3CB3DC-EEBF-4F52-9E1C-4F2F972E76C3} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
-		{B35D4D31-E74C-4646-8A11-7A7A40F0021E} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
-		{BD2D4D29-1BD9-40D0-BB31-337D5416B63C} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
-		{5F64B3C3-0C2E-431A-B820-A81BBFC863DA} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{EBFE9719-A44B-4978-A71F-D5C254E7F35A} = {A95C3BE1-B850-4265-97A0-777ADCCD437F}
-		{2822C132-BFFB-4D53-AC5B-E7E47DD81A6E} = {0EF2ACDF-012F-4472-A13A-4272419E2903}
-		{A76B8C8C-0DC5-4DD3-9B1F-02E51A0915F4} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{56139957-5C29-4E7D-89BD-7D20598B4EAF} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{6950B18F-A3D2-41A4-AFEC-8B7C49517611} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{2E9CB89D-EC8F-4DD9-A72B-08D5BABF752D} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{D95A7EC3-48AC-4D03-B2E2-0DA3E13BD3A4} = {D3273454-EA07-41D2-BF0B-FCC3675C2483}
-		{4F1C30F8-CCAA-48D7-9DF6-2A84021F5BCC} = {D3273454-EA07-41D2-BF0B-FCC3675C2483}
-		{6956CF5C-3163-4398-8628-4ECA569245B5} = {2D5D5227-4DBD-499A-96B1-76A36B03B750}
-		{B7B0EA74-528F-46B8-9BC4-909D9A67C194} = {D3273454-EA07-41D2-BF0B-FCC3675C2483}
-		{74032D79-8EA7-4483-BD82-C38370420FFF} = {D3273454-EA07-41D2-BF0B-FCC3675C2483}
-		{9C7B6B5F-088A-436E-834B-6373EA36DEEE} = {D3273454-EA07-41D2-BF0B-FCC3675C2483}
-		{7BC22A4A-15D2-44C2-AB45-049F0FB562FA} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
-		{A7994A41-CAF8-47A7-8975-F101F75B5BC1} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
-		{CE5523AE-6E38-4E20-998F-C64E02C5CC51} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
-		{7C24EAB8-57A9-4613-A8A6-4C21BB7D260D} = {A95C3BE1-B850-4265-97A0-777ADCCD437F}
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {2D10D020-6770-47CA-BB8D-2C23FE3AE071}
-	EndGlobalSection
-EndGlobal
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index 7b2956eceee150029e2e230349cd23e9f6927c24..0000000000000000000000000000000000000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) .NET Foundation and Contributors
-
-All rights reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software distributed
-under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-CONDITIONS OF ANY KIND, either express or implied. See the License for the
-specific language governing permissions and limitations under the License.
diff --git a/NuGet.config b/NuGet.config
deleted file mode 100644
index e32bddfd514287b0b63cece097f11ecb1410ec64..0000000000000000000000000000000000000000
--- a/NuGet.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <packageSources>
-    <clear />
-    <!-- Restore sources should be defined in build/sources.props. -->
-  </packageSources>
-</configuration>
diff --git a/NuGetPackageVerifier.json b/NuGetPackageVerifier.json
deleted file mode 100644
index 4f55b78b162ba6c6448510352f3f3959147b2f14..0000000000000000000000000000000000000000
--- a/NuGetPackageVerifier.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    "adx-nonshipping": {
-        "rules": [],
-        "packages": {
-            "Microsoft.Extensions.Buffers.Testing.Sources": {}
-        }
-    },
-    "Default": {
-        "rules": [
-            "DefaultCompositeRule"
-        ]
-    }
-}
diff --git a/README.md b/README.md
deleted file mode 100644
index 85a0a73610cd8a79bd336cc25fc8e2eb8099f5cc..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-KestrelHttpServer
-=================
-
-[![Join the chat at https://gitter.im/aspnet/KestrelHttpServer](https://badges.gitter.im/aspnet/KestrelHttpServer.svg)](https://gitter.im/aspnet/KestrelHttpServer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-[![Travis build status][travis-badge]](https://travis-ci.org/aspnet/KestrelHttpServer/branches)
-[![AppVeyor build status][appveyor-badge]](https://ci.appveyor.com/project/aspnetci/KestrelHttpServer/branch/dev)
-
-[travis-badge]: https://img.shields.io/travis/aspnet/KestrelHttpServer.svg?label=travis-ci&branch=dev&style=flat-square
-[appveyor-badge]: https://img.shields.io/appveyor/ci/aspnetci/KestrelHttpServer/dev.svg?label=appveyor&style=flat-square
-
-This repo contains a cross-platform web server for ASP.NET Core.
-
-This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo.
-
-## Building from source
-
-To run a complete build on command line only, execute `build.cmd` or `build.sh` without arguments. See [developer documentation](https://github.com/aspnet/Home/wiki) for more details.
-
-## File logging for functional test
-
-Turn on file logging for Kestrel functional tests by specifying the environment variable ASPNETCORE_TEST_LOG_DIR to the log output directory.
-
-## Packages
-
-Kestrel is available as a NuGet package.
-
- Package name                               | Stable                                      | Nightly (`dev` branch)
---------------------------------------------|---------------------------------------------|------------------------------------------
-`Microsoft.AspNetCore.Server.Kestrel`       | [![NuGet][main-nuget-badge]][main-nuget]    | [![MyGet][main-myget-badge]][main-myget]
-`Microsoft.AspNetCore.Server.Kestrel.Https` | [![NuGet][https-nuget-badge]][https-nuget]  | [![MyGet][https-myget-badge]][https-myget]
-
-
-[main-nuget]: https://www.nuget.org/packages/Microsoft.AspNetCore.Server.Kestrel/
-[main-nuget-badge]: https://img.shields.io/nuget/v/Microsoft.AspNetCore.Server.Kestrel.svg?style=flat-square&label=nuget
-[main-myget]: https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.AspNetCore.Server.Kestrel
-[main-myget-badge]: https://img.shields.io/dotnet.myget/aspnetcore-dev/vpre/Microsoft.AspNetCore.Server.Kestrel.svg?style=flat-square&label=myget
-
-[https-nuget]: https://www.nuget.org/packages/Microsoft.AspNetCore.Server.Kestrel.Https/
-[https-nuget-badge]: https://img.shields.io/nuget/v/Microsoft.AspNetCore.Server.Kestrel.Https.svg?style=flat-square&label=nuget
-[https-myget]: https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.AspNetCore.Server.Kestrel.Https
-[https-myget-badge]: https://img.shields.io/dotnet.myget/aspnetcore-dev/vpre/Microsoft.AspNetCore.Server.Kestrel.Https.svg?style=flat-square&label=myget
diff --git a/ToProjectReferences.ps1 b/ToProjectReferences.ps1
deleted file mode 100644
index 4273aff9299a3f99ef4acbc77174b7e9ab906dc3..0000000000000000000000000000000000000000
--- a/ToProjectReferences.ps1
+++ /dev/null
@@ -1,45 +0,0 @@
-param($references)
-$ErrorActionPreference = "Stop";
-
-function ToProjectName($file)
-{
-    return $file.Directory.Name;
-}
-
-$projectreferences = ls (Join-Path $references *.csproj) -rec;
-
-$localprojects = ls -rec *.csproj;
-
-foreach ($project in $localprojects)
-{
-    Write-Host "Processing $project";
-
-    [Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq") | Out-Null;
-
-    $changed = $false
-    $xDoc = [System.Xml.Linq.XDocument]::Load($project, [System.Xml.Linq.LoadOptions]::PreserveWhitespace);
-    $endpoints = $xDoc.Descendants("PackageReference") | %{
-        $packageName = $_.Attribute("Include").Value;
-        $replacementProject = $projectreferences | ? { 
-            return (ToProjectName($_)) -eq $packageName 
-        };
-
-        if ($replacementProject)
-        {
-            $changed = $true
-            Write-Host "      Replacing $packageName with $($project.FullName)";
-            $_.Name = "ProjectReference";
-            $_.Attribute("Include").Value = $replacementProject.FullName;
-        }
-    };
-    if ($changed)
-    {
-        $settings = New-Object System.Xml.XmlWriterSettings
-        $settings.OmitXmlDeclaration = $true;
-        $writer = [System.Xml.XmlWriter]::Create($project, $settings)
-
-        $xDoc.Save($writer);
-        $writer.Dispose();
-    }
-
-}
\ No newline at end of file
diff --git a/benchmarks/Kestrel.Performance/Kestrel.Performance.csproj b/benchmarks/Kestrel.Performance/Kestrel.Performance.csproj
deleted file mode 100644
index 0fb7d5af0a5d0f1a4dc087b61c7338306631f2d2..0000000000000000000000000000000000000000
--- a/benchmarks/Kestrel.Performance/Kestrel.Performance.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <!-- Using shorter assembly name instead of Microsoft.AspNetCore.Server.Kestrel.Performance because https://github.com/dotnet/BenchmarkDotNet/issues/498 -->
-    <AssemblyName>Kestrel.Performance</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Performance</RootNamespace>
-    <TargetFramework>netcoreapp2.0</TargetFramework>
-    <OutputType>Exe</OutputType>
-    <ServerGarbageCollection>true</ServerGarbageCollection>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsPackable>false</IsPackable>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\..\test\shared\TestApplicationErrorLogger.cs" />
-    <Compile Include="..\..\test\shared\TestHttp1Connection.cs" />
-    <Compile Include="..\..\test\shared\TestKestrelTrace.cs" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" PrivateAssets="All" Version="$(MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/build.cmd b/build.cmd
deleted file mode 100644
index c0050bda125e73f3745de70a4021262eaa048c7b..0000000000000000000000000000000000000000
--- a/build.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@ECHO OFF
-PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' default-build %*; exit $LASTEXITCODE"
diff --git a/build.sh b/build.sh
deleted file mode 100755
index 98a4b227658413eca2adb0d1d2d68178a80155cf..0000000000000000000000000000000000000000
--- a/build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs)
-chmod +x "$DIR/run.sh"; sync
-"$DIR/run.sh" default-build "$@"
diff --git a/build/Key.snk b/build/Key.snk
deleted file mode 100644
index e10e4889c125d3120cd9e81582243d70f7cbb806..0000000000000000000000000000000000000000
Binary files a/build/Key.snk and /dev/null differ
diff --git a/build/buildpipeline/linux.groovy b/build/buildpipeline/linux.groovy
deleted file mode 100644
index 903f218bb81729f196f49783c8c00cbfcaacf742..0000000000000000000000000000000000000000
--- a/build/buildpipeline/linux.groovy
+++ /dev/null
@@ -1,10 +0,0 @@
-@Library('dotnet-ci') _
-
-simpleNode('Ubuntu16.04', 'latest-or-auto-docker') {
-    stage ('Checking out source') {
-        checkout scm
-    }
-    stage ('Build') {
-        sh './build.sh --ci'
-    }
-}
diff --git a/build/buildpipeline/osx.groovy b/build/buildpipeline/osx.groovy
deleted file mode 100644
index aaac63686b535b2362f59b2b44c7f5bfaa24804e..0000000000000000000000000000000000000000
--- a/build/buildpipeline/osx.groovy
+++ /dev/null
@@ -1,10 +0,0 @@
-@Library('dotnet-ci') _
-
-simpleNode('OSX10.12','latest') {
-    stage ('Checking out source') {
-        checkout scm
-    }
-    stage ('Build') {
-        sh './build.sh --ci'
-    }
-}
diff --git a/build/buildpipeline/pipeline.groovy b/build/buildpipeline/pipeline.groovy
deleted file mode 100644
index e915cadae1248543e59faa083b0385ed1e9578b9..0000000000000000000000000000000000000000
--- a/build/buildpipeline/pipeline.groovy
+++ /dev/null
@@ -1,18 +0,0 @@
-import org.dotnet.ci.pipelines.Pipeline
-
-def windowsPipeline = Pipeline.createPipeline(this, 'build/buildpipeline/windows.groovy')
-def linuxPipeline = Pipeline.createPipeline(this, 'build/buildpipeline/linux.groovy')
-def osxPipeline = Pipeline.createPipeline(this, 'build/buildpipeline/osx.groovy')
-String configuration = 'Release'
-def parameters = [
-    'Configuration': configuration
-]
-
-windowsPipeline.triggerPipelineOnEveryGithubPR("Windows ${configuration} x64 Build", parameters)
-windowsPipeline.triggerPipelineOnGithubPush(parameters)
-
-linuxPipeline.triggerPipelineOnEveryGithubPR("Ubuntu 16.04 ${configuration} Build", parameters)
-linuxPipeline.triggerPipelineOnGithubPush(parameters)
-
-osxPipeline.triggerPipelineOnEveryGithubPR("OSX 10.12 ${configuration} Build", parameters)
-osxPipeline.triggerPipelineOnGithubPush(parameters)
diff --git a/build/buildpipeline/windows.groovy b/build/buildpipeline/windows.groovy
deleted file mode 100644
index 8d26f313d497061d6eb94dd2527a4b8518900269..0000000000000000000000000000000000000000
--- a/build/buildpipeline/windows.groovy
+++ /dev/null
@@ -1,12 +0,0 @@
-@Library('dotnet-ci') _
-
-// 'node' indicates to Jenkins that the enclosed block runs on a node that matches
-// the label 'windows-with-vs'
-simpleNode('Windows_NT','latest') {
-    stage ('Checking out source') {
-        checkout scm
-    }
-    stage ('Build') {
-        bat '.\\run.cmd -CI default-build'
-    }
-}
diff --git a/build/dependencies.props b/build/dependencies.props
deleted file mode 100644
index b855ca56d0d33278babde5100361b09dc0cb2906..0000000000000000000000000000000000000000
--- a/build/dependencies.props
+++ /dev/null
@@ -1,58 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
-  </PropertyGroup>
-  <!-- This files is typically managed by automation. Execute 'run.ps1 upgrade deps' to update these variables to the last-known-good versions. -->
-
-  <!-- These package versions may be overridden or updated by automation. -->
-  <PropertyGroup Label="Package Versions: Auto">
-    <BenchmarkDotNetPackageVersion>0.10.13</BenchmarkDotNetPackageVersion>
-    <InternalAspNetCoreSdkPackageVersion>2.1.3-rtm-15802</InternalAspNetCoreSdkPackageVersion>
-    <LibuvPackageVersion>1.10.0</LibuvPackageVersion>
-    <MicrosoftNETCoreApp20PackageVersion>2.0.0</MicrosoftNETCoreApp20PackageVersion>
-    <MicrosoftNETCoreApp21PackageVersion>2.1.2</MicrosoftNETCoreApp21PackageVersion>
-    <MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
-    <MoqPackageVersion>4.7.49</MoqPackageVersion>
-    <NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>
-    <NewtonsoftJsonPackageVersion>11.0.2</NewtonsoftJsonPackageVersion>
-    <SystemBuffersPackageVersion>4.5.0</SystemBuffersPackageVersion>
-    <SystemIOPipelinesPackageVersion>4.5.0</SystemIOPipelinesPackageVersion>
-    <SystemMemoryPackageVersion>4.5.1</SystemMemoryPackageVersion>
-    <SystemNumericsVectorsPackageVersion>4.5.0</SystemNumericsVectorsPackageVersion>
-    <SystemRuntimeCompilerServicesUnsafePackageVersion>4.5.1</SystemRuntimeCompilerServicesUnsafePackageVersion>
-    <SystemSecurityCryptographyCngPackageVersion>4.5.0</SystemSecurityCryptographyCngPackageVersion>
-    <SystemThreadingTasksExtensionsPackageVersion>4.5.1</SystemThreadingTasksExtensionsPackageVersion>
-    <Utf8JsonPackageVersion>1.3.7</Utf8JsonPackageVersion>
-    <XunitAnalyzersPackageVersion>0.8.0</XunitAnalyzersPackageVersion>
-    <XunitPackageVersion>2.3.1</XunitPackageVersion>
-    <XunitRunnerVisualStudioPackageVersion>2.4.0-beta.1.build3945</XunitRunnerVisualStudioPackageVersion>
-  </PropertyGroup>
-
-  <!-- This may import a generated file which may override the variables above. -->
-  <Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
-
-  <!-- These are package versions that should not be overridden or updated by automation. -->
-  <PropertyGroup Label="Package Versions: Pinned">
-    <MicrosoftAspNetCoreAllPackageVersion>2.1.2</MicrosoftAspNetCoreAllPackageVersion>
-    <MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>2.1.1</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
-    <MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion>2.1.1</MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion>
-    <MicrosoftAspNetCoreHostingAbstractionsPackageVersion>2.1.1</MicrosoftAspNetCoreHostingAbstractionsPackageVersion>
-    <MicrosoftAspNetCoreHostingPackageVersion>2.1.1</MicrosoftAspNetCoreHostingPackageVersion>
-    <MicrosoftAspNetCoreHttpAbstractionsPackageVersion>2.1.1</MicrosoftAspNetCoreHttpAbstractionsPackageVersion>
-    <MicrosoftAspNetCoreHttpFeaturesPackageVersion>2.1.1</MicrosoftAspNetCoreHttpFeaturesPackageVersion>
-    <MicrosoftAspNetCoreHttpPackageVersion>2.1.1</MicrosoftAspNetCoreHttpPackageVersion>
-    <MicrosoftAspNetCoreTestingPackageVersion>2.1.0</MicrosoftAspNetCoreTestingPackageVersion>
-    <MicrosoftAspNetCoreWebUtilitiesPackageVersion>2.1.1</MicrosoftAspNetCoreWebUtilitiesPackageVersion>
-    <MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>2.1.1</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
-    <MicrosoftExtensionsConfigurationBinderPackageVersion>2.1.1</MicrosoftExtensionsConfigurationBinderPackageVersion>
-    <MicrosoftExtensionsConfigurationCommandLinePackageVersion>2.1.1</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
-    <MicrosoftExtensionsConfigurationJsonPackageVersion>2.1.1</MicrosoftExtensionsConfigurationJsonPackageVersion>
-    <MicrosoftExtensionsDependencyInjectionPackageVersion>2.1.1</MicrosoftExtensionsDependencyInjectionPackageVersion>
-    <MicrosoftExtensionsLoggingAbstractionsPackageVersion>2.1.1</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
-    <MicrosoftExtensionsLoggingConsolePackageVersion>2.1.1</MicrosoftExtensionsLoggingConsolePackageVersion>
-    <MicrosoftExtensionsLoggingPackageVersion>2.1.1</MicrosoftExtensionsLoggingPackageVersion>
-    <MicrosoftExtensionsLoggingTestingPackageVersion>2.1.1</MicrosoftExtensionsLoggingTestingPackageVersion>
-    <MicrosoftExtensionsOptionsPackageVersion>2.1.1</MicrosoftExtensionsOptionsPackageVersion>
-    <MicrosoftNetHttpHeadersPackageVersion>2.1.1</MicrosoftNetHttpHeadersPackageVersion>
-  </PropertyGroup>
-</Project>
\ No newline at end of file
diff --git a/build/repo.props b/build/repo.props
deleted file mode 100644
index 413dd9dd052933594d195815c3eefac47f7b71a7..0000000000000000000000000000000000000000
--- a/build/repo.props
+++ /dev/null
@@ -1,16 +0,0 @@
-<Project>
-  <Import Project="dependencies.props" />
-
-  <PropertyGroup>
-    <EnableBenchmarkValidation>true</EnableBenchmarkValidation>
-    <!-- These properties are use by the automation that updates dependencies.props -->
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageVersion>2.1.0-rc1-*</LineupPackageVersion>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" />
-    <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp21PackageVersion)" />
-  </ItemGroup>
-</Project>
diff --git a/build/repo.targets b/build/repo.targets
deleted file mode 100644
index 820bc06a7ff1f99565aec4dbd117e2432c880b4d..0000000000000000000000000000000000000000
--- a/build/repo.targets
+++ /dev/null
@@ -1,17 +0,0 @@
-<Project>
-  <Target Name="CodeGen">
-    <Exec Command="dotnet run" WorkingDirectory="$(MSBuildThisFileDirectory)..\tools\CodeGenerator\" />
-  </Target>
-
-  <PropertyGroup>
-    <StressTestDependsOn Condition=" '$(NoBuild)' != 'true' ">Build</StressTestDependsOn>
-  </PropertyGroup>
-
-  <Target Name="StressTest" DependsOnTargets="$(StressTestDependsOn)">
-    <ItemGroup>
-      <Iteration Include="0;1;2;3;4;5;6;7;8;9" />
-    </ItemGroup>
-    <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="TestProjects" Properties="FakeProperty=%(Iteration.Identity)" />
-  </Target>
-</Project>
-
diff --git a/build/sources.props b/build/sources.props
deleted file mode 100644
index fe324c40e3f2e0142a11504d28b031cedb22f74d..0000000000000000000000000000000000000000
--- a/build/sources.props
+++ /dev/null
@@ -1,18 +0,0 @@
-<Project>
-  <Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/>
-
-  <PropertyGroup Label="RestoreSources">
-    <RestoreSources>$(DotNetRestoreSources)</RestoreSources>
-    <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' ">
-      $(RestoreSources);
-      https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
-      https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
-      https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json;
-      https://dotnet.myget.org/F/roslyn/api/v3/index.json;
-    </RestoreSources>
-    <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'">
-      $(RestoreSources);
-      https://api.nuget.org/v3/index.json;
-    </RestoreSources>
-  </PropertyGroup>
-</Project>
diff --git a/korebuild-lock.txt b/korebuild-lock.txt
deleted file mode 100644
index 251c227c83e3b220e1cf01419573422bfbf45d24..0000000000000000000000000000000000000000
--- a/korebuild-lock.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-version:2.1.3-rtm-15802
-commithash:a7c08b45b440a7d2058a0aa1eaa3eb6ba811976a
diff --git a/korebuild.json b/korebuild.json
deleted file mode 100644
index 678d8bb94838ea300151a3009963fafafeb01bfd..0000000000000000000000000000000000000000
--- a/korebuild.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.1/tools/korebuild.schema.json",
-  "channel": "release/2.1"
-}
diff --git a/run.cmd b/run.cmd
deleted file mode 100644
index d52d5c7e689e8108ed0f0b83a22b61375fde8fef..0000000000000000000000000000000000000000
--- a/run.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@ECHO OFF
-PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' %*; exit $LASTEXITCODE"
diff --git a/run.ps1 b/run.ps1
deleted file mode 100644
index 96c6c54c6965b8929f0286193c5af8afd8f072d3..0000000000000000000000000000000000000000
--- a/run.ps1
+++ /dev/null
@@ -1,208 +0,0 @@
-#!/usr/bin/env powershell
-#requires -version 4
-
-<#
-.SYNOPSIS
-Executes KoreBuild commands.
-
-.DESCRIPTION
-Downloads korebuild if required. Then executes the KoreBuild command. To see available commands, execute with `-Command help`.
-
-.PARAMETER Command
-The KoreBuild command to run.
-
-.PARAMETER Path
-The folder to build. Defaults to the folder containing this script.
-
-.PARAMETER Channel
-The channel of KoreBuild to download. Overrides the value from the config file.
-
-.PARAMETER DotNetHome
-The directory where .NET Core tools will be stored.
-
-.PARAMETER ToolsSource
-The base url where build tools can be downloaded. Overrides the value from the config file.
-
-.PARAMETER Update
-Updates KoreBuild to the latest version even if a lock file is present.
-
-.PARAMETER Reinstall
-Re-installs KoreBuild
-
-.PARAMETER ConfigFile
-The path to the configuration file that stores values. Defaults to korebuild.json.
-
-.PARAMETER ToolsSourceSuffix
-The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores.
-
-.PARAMETER CI
-Sets up CI specific settings and variables.
-
-.PARAMETER Arguments
-Arguments to be passed to the command
-
-.NOTES
-This function will create a file $PSScriptRoot/korebuild-lock.txt. This lock file can be committed to source, but does not have to be.
-When the lockfile is not present, KoreBuild will create one using latest available version from $Channel.
-
-The $ConfigFile is expected to be an JSON file. It is optional, and the configuration values in it are optional as well. Any options set
-in the file are overridden by command line parameters.
-
-.EXAMPLE
-Example config file:
-```json
-{
-  "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/dev/tools/korebuild.schema.json",
-  "channel": "dev",
-  "toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools"
-}
-```
-#>
-[CmdletBinding(PositionalBinding = $false)]
-param(
-    [Parameter(Mandatory = $true, Position = 0)]
-    [string]$Command,
-    [string]$Path = $PSScriptRoot,
-    [Alias('c')]
-    [string]$Channel,
-    [Alias('d')]
-    [string]$DotNetHome,
-    [Alias('s')]
-    [string]$ToolsSource,
-    [Alias('u')]
-    [switch]$Update,
-    [switch]$Reinstall,
-    [string]$ToolsSourceSuffix,
-    [string]$ConfigFile = $null,
-    [switch]$CI,
-    [Parameter(ValueFromRemainingArguments = $true)]
-    [string[]]$Arguments
-)
-
-Set-StrictMode -Version 2
-$ErrorActionPreference = 'Stop'
-
-#
-# Functions
-#
-
-function Get-KoreBuild {
-
-    $lockFile = Join-Path $Path 'korebuild-lock.txt'
-
-    if (!(Test-Path $lockFile) -or $Update) {
-        Get-RemoteFile "$ToolsSource/korebuild/channels/$Channel/latest.txt" $lockFile $ToolsSourceSuffix
-    }
-
-    $version = Get-Content $lockFile | Where-Object { $_ -like 'version:*' } | Select-Object -first 1
-    if (!$version) {
-        Write-Error "Failed to parse version from $lockFile. Expected a line that begins with 'version:'"
-    }
-    $version = $version.TrimStart('version:').Trim()
-    $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version)
-
-    if ($Reinstall -and (Test-Path $korebuildPath)) {
-        Remove-Item -Force -Recurse $korebuildPath
-    }
-
-    if (!(Test-Path $korebuildPath)) {
-        Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version"
-        New-Item -ItemType Directory -Path $korebuildPath | Out-Null
-        $remotePath = "$ToolsSource/korebuild/artifacts/$version/korebuild.$version.zip"
-
-        try {
-            $tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip"
-            Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix
-            if (Get-Command -Name 'Expand-Archive' -ErrorAction Ignore) {
-                # Use built-in commands where possible as they are cross-plat compatible
-                Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath
-            }
-            else {
-                # Fallback to old approach for old installations of PowerShell
-                Add-Type -AssemblyName System.IO.Compression.FileSystem
-                [System.IO.Compression.ZipFile]::ExtractToDirectory($tmpfile, $korebuildPath)
-            }
-        }
-        catch {
-            Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore
-            throw
-        }
-        finally {
-            Remove-Item $tmpfile -ErrorAction Ignore
-        }
-    }
-
-    return $korebuildPath
-}
-
-function Join-Paths([string]$path, [string[]]$childPaths) {
-    $childPaths | ForEach-Object { $path = Join-Path $path $_ }
-    return $path
-}
-
-function Get-RemoteFile([string]$RemotePath, [string]$LocalPath, [string]$RemoteSuffix) {
-    if ($RemotePath -notlike 'http*') {
-        Copy-Item $RemotePath $LocalPath
-        return
-    }
-
-    $retries = 10
-    while ($retries -gt 0) {
-        $retries -= 1
-        try {
-            Invoke-WebRequest -UseBasicParsing -Uri $($RemotePath + $RemoteSuffix) -OutFile $LocalPath
-            return
-        }
-        catch {
-            Write-Verbose "Request failed. $retries retries remaining"
-        }
-    }
-
-    Write-Error "Download failed: '$RemotePath'."
-}
-
-#
-# Main
-#
-
-# Load configuration or set defaults
-
-$Path = Resolve-Path $Path
-if (!$ConfigFile) { $ConfigFile = Join-Path $Path 'korebuild.json' }
-
-if (Test-Path $ConfigFile) {
-    try {
-        $config = Get-Content -Raw -Encoding UTF8 -Path $ConfigFile | ConvertFrom-Json
-        if ($config) {
-            if (!($Channel) -and (Get-Member -Name 'channel' -InputObject $config)) { [string] $Channel = $config.channel }
-            if (!($ToolsSource) -and (Get-Member -Name 'toolsSource' -InputObject $config)) { [string] $ToolsSource = $config.toolsSource}
-        }
-    }
-    catch {
-        Write-Warning "$ConfigFile could not be read. Its settings will be ignored."
-        Write-Warning $Error[0]
-    }
-}
-
-if (!$DotNetHome) {
-    $DotNetHome = if ($env:DOTNET_HOME) { $env:DOTNET_HOME } `
-        elseif ($env:USERPROFILE) { Join-Path $env:USERPROFILE '.dotnet'} `
-        elseif ($env:HOME) {Join-Path $env:HOME '.dotnet'}`
-        else { Join-Path $PSScriptRoot '.dotnet'}
-}
-
-if (!$Channel) { $Channel = 'dev' }
-if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' }
-
-# Execute
-
-$korebuildPath = Get-KoreBuild
-Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
-
-try {
-    Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile -CI:$CI
-    Invoke-KoreBuildCommand $Command @Arguments
-}
-finally {
-    Remove-Module 'KoreBuild' -ErrorAction Ignore
-}
diff --git a/run.sh b/run.sh
deleted file mode 100755
index 4606a42e786def7cd77a714a3c86c7535206b81f..0000000000000000000000000000000000000000
--- a/run.sh
+++ /dev/null
@@ -1,245 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-#
-# variables
-#
-
-RESET="\033[0m"
-RED="\033[0;31m"
-YELLOW="\033[0;33m"
-MAGENTA="\033[0;95m"
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet"
-verbose=false
-update=false
-reinstall=false
-repo_path="$DIR"
-channel=''
-tools_source=''
-tools_source_suffix=''
-ci=false
-
-#
-# Functions
-#
-__usage() {
-    echo "Usage: $(basename "${BASH_SOURCE[0]}") command [options] [[--] <Arguments>...]"
-    echo ""
-    echo "Arguments:"
-    echo "    command                The command to be run."
-    echo "    <Arguments>...         Arguments passed to the command. Variable number of arguments allowed."
-    echo ""
-    echo "Options:"
-    echo "    --verbose                                             Show verbose output."
-    echo "    -c|--channel <CHANNEL>                                The channel of KoreBuild to download. Overrides the value from the config file.."
-    echo "    --config-file <FILE>                                  The path to the configuration file that stores values. Defaults to korebuild.json."
-    echo "    -d|--dotnet-home <DIR>                                The directory where .NET Core tools will be stored. Defaults to '\$DOTNET_HOME' or '\$HOME/.dotnet."
-    echo "    --path <PATH>                                         The directory to build. Defaults to the directory containing the script."
-    echo "    -s|--tools-source|-ToolsSource <URL>                  The base url where build tools can be downloaded. Overrides the value from the config file."
-    echo "    --tools-source-suffix|-ToolsSourceSuffix <SUFFIX>     The suffix to append to tools-source. Useful for query strings."
-    echo "    -u|--update                                           Update to the latest KoreBuild even if the lock file is present."
-    echo "    --reinstall                                           Reinstall KoreBuild."
-    echo "    --ci                                                  Apply CI specific settings and environment variables."
-    echo ""
-    echo "Description:"
-    echo "    This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be."
-    echo "    When the lockfile is not present, KoreBuild will create one using latest available version from \$channel."
-
-    if [[ "${1:-}" != '--no-exit' ]]; then
-        exit 2
-    fi
-}
-
-get_korebuild() {
-    local version
-    local lock_file="$repo_path/korebuild-lock.txt"
-    if [ ! -f "$lock_file" ] || [ "$update" = true ]; then
-        __get_remote_file "$tools_source/korebuild/channels/$channel/latest.txt" "$lock_file" "$tools_source_suffix"
-    fi
-    version="$(grep 'version:*' -m 1 "$lock_file")"
-    if [[ "$version" == '' ]]; then
-        __error "Failed to parse version from $lock_file. Expected a line that begins with 'version:'"
-        return 1
-    fi
-    version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
-    local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version"
-
-    if [ "$reinstall" = true ] && [ -d "$korebuild_path" ]; then
-        rm -rf "$korebuild_path"
-    fi
-
-    {
-        if [ ! -d "$korebuild_path" ]; then
-            mkdir -p "$korebuild_path"
-            local remote_path="$tools_source/korebuild/artifacts/$version/korebuild.$version.zip"
-            tmpfile="$(mktemp)"
-            echo -e "${MAGENTA}Downloading KoreBuild ${version}${RESET}"
-            if __get_remote_file "$remote_path" "$tmpfile" "$tools_source_suffix"; then
-                unzip -q -d "$korebuild_path" "$tmpfile"
-            fi
-            rm "$tmpfile" || true
-        fi
-
-        source "$korebuild_path/KoreBuild.sh"
-    } || {
-        if [ -d "$korebuild_path" ]; then
-            echo "Cleaning up after failed installation"
-            rm -rf "$korebuild_path" || true
-        fi
-        return 1
-    }
-}
-
-__error() {
-    echo -e "${RED}error: $*${RESET}" 1>&2
-}
-
-__warn() {
-    echo -e "${YELLOW}warning: $*${RESET}"
-}
-
-__machine_has() {
-    hash "$1" > /dev/null 2>&1
-    return $?
-}
-
-__get_remote_file() {
-    local remote_path=$1
-    local local_path=$2
-    local remote_path_suffix=$3
-
-    if [[ "$remote_path" != 'http'* ]]; then
-        cp "$remote_path" "$local_path"
-        return 0
-    fi
-
-    local failed=false
-    if __machine_has wget; then
-        wget --tries 10 --quiet -O "$local_path" "${remote_path}${remote_path_suffix}" || failed=true
-    else
-        failed=true
-    fi
-
-    if [ "$failed" = true ] && __machine_has curl; then
-        failed=false
-        curl --retry 10 -sSL -f --create-dirs -o "$local_path" "${remote_path}${remote_path_suffix}" || failed=true
-    fi
-
-    if [ "$failed" = true ]; then
-        __error "Download failed: $remote_path" 1>&2
-        return 1
-    fi
-}
-
-#
-# main
-#
-
-command="${1:-}"
-shift
-
-while [[ $# -gt 0 ]]; do
-    case $1 in
-        -\?|-h|--help)
-            __usage --no-exit
-            exit 0
-            ;;
-        -c|--channel|-Channel)
-            shift
-            channel="${1:-}"
-            [ -z "$channel" ] && __usage
-            ;;
-        --config-file|-ConfigFile)
-            shift
-            config_file="${1:-}"
-            [ -z "$config_file" ] && __usage
-            if [ ! -f "$config_file" ]; then
-                __error "Invalid value for --config-file. $config_file does not exist."
-                exit 1
-            fi
-            ;;
-        -d|--dotnet-home|-DotNetHome)
-            shift
-            DOTNET_HOME="${1:-}"
-            [ -z "$DOTNET_HOME" ] && __usage
-            ;;
-        --path|-Path)
-            shift
-            repo_path="${1:-}"
-            [ -z "$repo_path" ] && __usage
-            ;;
-        -s|--tools-source|-ToolsSource)
-            shift
-            tools_source="${1:-}"
-            [ -z "$tools_source" ] && __usage
-            ;;
-        --tools-source-suffix|-ToolsSourceSuffix)
-            shift
-            tools_source_suffix="${1:-}"
-            [ -z "$tools_source_suffix" ] && __usage
-            ;;
-        -u|--update|-Update)
-            update=true
-            ;;
-        --reinstall|-[Rr]einstall)
-            reinstall=true
-            ;;
-        --ci)
-            ci=true
-            ;;
-        --verbose|-Verbose)
-            verbose=true
-            ;;
-        --)
-            shift
-            break
-            ;;
-        *)
-            break
-            ;;
-    esac
-    shift
-done
-
-if ! __machine_has unzip; then
-    __error 'Missing required command: unzip'
-    exit 1
-fi
-
-if ! __machine_has curl && ! __machine_has wget; then
-    __error 'Missing required command. Either wget or curl is required.'
-    exit 1
-fi
-
-[ -z "${config_file:-}" ] && config_file="$repo_path/korebuild.json"
-if [ -f "$config_file" ]; then
-    if __machine_has jq ; then
-        if jq '.' "$config_file" >/dev/null ; then
-            config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")"
-            config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")"
-        else
-            __warn "$config_file is invalid JSON. Its settings will be ignored."
-        fi
-    elif __machine_has python ; then
-        if python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then
-            config_channel="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")"
-            config_tools_source="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")"
-        else
-            __warn "$config_file is invalid JSON. Its settings will be ignored."
-        fi
-    else
-        __warn 'Missing required command: jq or pyton. Could not parse the JSON file. Its settings will be ignored.'
-    fi
-
-    [ ! -z "${config_channel:-}" ] && channel="$config_channel"
-    [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
-fi
-
-[ -z "$channel" ] && channel='dev'
-[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
-
-get_korebuild
-set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" "$ci"
-invoke_korebuild_command "$command" "$@"
diff --git a/src/Connections.Abstractions/Connections.Abstractions.csproj b/src/Connections.Abstractions/Connections.Abstractions.csproj
deleted file mode 100644
index 7ac34a26ddc0451638f20e04eb18176b9a701424..0000000000000000000000000000000000000000
--- a/src/Connections.Abstractions/Connections.Abstractions.csproj
+++ /dev/null
@@ -1,19 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Connections.Abstractions</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Connections.Abstractions</RootNamespace>
-    <Description>Core components of ASP.NET Core networking protocol stack.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore</PackageTags>
-    <NoWarn>CS1591;$(NoWarn)</NoWarn>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="$(MicrosoftAspNetCoreHttpFeaturesPackageVersion)" />
-    <PackageReference Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.ActivatorUtilities.Sources" Version="$(MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion)" PrivateAssets="All" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
deleted file mode 100644
index 6b85b2cf04ee35975e7df12a148f156795fa601c..0000000000000000000000000000000000000000
--- a/src/Directory.Build.props
+++ /dev/null
@@ -1,13 +0,0 @@
-<Project>
-  <Import Project="..\Directory.Build.props" />
-  <PropertyGroup>
-    <DefineConstants Condition="'$(InnerLoop)' != ''">$(DefineConstants);INNER_LOOP</DefineConstants>
-  </PropertyGroup>
-  <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
-  </ItemGroup>
-  <PropertyGroup>
-    <!-- https://github.com/aspnet/KestrelHttpServer/issues/2350 -->
-    <EnableApiCheck>false</EnableApiCheck>
-  </PropertyGroup>
-</Project>
diff --git a/src/Kestrel.Core/Kestrel.Core.csproj b/src/Kestrel.Core/Kestrel.Core.csproj
deleted file mode 100644
index 8551a56002b141faf4f5f7254c1380c3ef257221..0000000000000000000000000000000000000000
--- a/src/Kestrel.Core/Kestrel.Core.csproj
+++ /dev/null
@@ -1,43 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Core</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Core</RootNamespace>
-    <Description>Core components of ASP.NET Core Kestrel cross-platform web server.</Description>
-    <TargetFrameworks>netstandard2.0;netcoreapp2.1</TargetFrameworks>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore;kestrel</PackageTags>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <NoWarn>CS1591;$(NoWarn)</NoWarn>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\shared\ThrowHelper.cs" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Certificates.Generation.Sources" PrivateAssets="All" Version="$(MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="$(MicrosoftAspNetCoreWebUtilitiesPackageVersion)" />
-    <PackageReference Include="Microsoft.Net.Http.Headers" Version="$(MicrosoftNetHttpHeadersPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-    <PackageReference Include="System.Threading.Tasks.Extensions" Version="$(SystemThreadingTasksExtensionsPackageVersion)" />
-    <PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
-    <PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
-    <PackageReference Include="System.Security.Cryptography.Cng" Version="$(SystemSecurityCryptographyCngPackageVersion)" />
-    <PackageReference Include="System.Numerics.Vectors" Version="$(SystemNumericsVectorsPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Kestrel.Transport.Abstractions\Kestrel.Transport.Abstractions.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <EmbeddedResource Update="CoreStrings.resx">
-      <Generator></Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-
-</Project>
diff --git a/src/Kestrel.Transport.Libuv/Kestrel.Transport.Libuv.csproj b/src/Kestrel.Transport.Libuv/Kestrel.Transport.Libuv.csproj
deleted file mode 100644
index bef2f77e606350ff1572d065bedf3fc481d67631..0000000000000000000000000000000000000000
--- a/src/Kestrel.Transport.Libuv/Kestrel.Transport.Libuv.csproj
+++ /dev/null
@@ -1,25 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv</RootNamespace>
-    <Description>Libuv transport for the ASP.NET Core Kestrel cross-platform web server.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore;kestrel</PackageTags>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <NoWarn>CS1591;$(NoWarn)</NoWarn>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Libuv" Version="$(LibuvPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Kestrel.Transport.Abstractions\Kestrel.Transport.Abstractions.csproj" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Kestrel/Kestrel.csproj b/src/Kestrel/Kestrel.csproj
deleted file mode 100644
index f09786308614ef38d63a55c05c90984969c8b835..0000000000000000000000000000000000000000
--- a/src/Kestrel/Kestrel.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel</RootNamespace>
-    <Description>ASP.NET Core Kestrel cross-platform web server.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore;kestrel</PackageTags>
-    <NoWarn>CS1591;$(NoWarn)</NoWarn>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Kestrel.Core\Kestrel.Core.csproj" />
-    <ProjectReference Include="..\Kestrel.Https\Kestrel.Https.csproj" />
-    <ProjectReference Include="..\Kestrel.Transport.Sockets\Kestrel.Transport.Sockets.csproj" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Connections.Abstractions/ConnectionBuilder.cs b/src/Servers/Connections.Abstractions/src/ConnectionBuilder.cs
similarity index 100%
rename from src/Connections.Abstractions/ConnectionBuilder.cs
rename to src/Servers/Connections.Abstractions/src/ConnectionBuilder.cs
diff --git a/src/Connections.Abstractions/ConnectionBuilderExtensions.cs b/src/Servers/Connections.Abstractions/src/ConnectionBuilderExtensions.cs
similarity index 100%
rename from src/Connections.Abstractions/ConnectionBuilderExtensions.cs
rename to src/Servers/Connections.Abstractions/src/ConnectionBuilderExtensions.cs
diff --git a/src/Connections.Abstractions/ConnectionContext.cs b/src/Servers/Connections.Abstractions/src/ConnectionContext.cs
similarity index 100%
rename from src/Connections.Abstractions/ConnectionContext.cs
rename to src/Servers/Connections.Abstractions/src/ConnectionContext.cs
diff --git a/src/Connections.Abstractions/ConnectionDelegate.cs b/src/Servers/Connections.Abstractions/src/ConnectionDelegate.cs
similarity index 100%
rename from src/Connections.Abstractions/ConnectionDelegate.cs
rename to src/Servers/Connections.Abstractions/src/ConnectionDelegate.cs
diff --git a/src/Connections.Abstractions/ConnectionHandler.cs b/src/Servers/Connections.Abstractions/src/ConnectionHandler.cs
similarity index 100%
rename from src/Connections.Abstractions/ConnectionHandler.cs
rename to src/Servers/Connections.Abstractions/src/ConnectionHandler.cs
diff --git a/src/Connections.Abstractions/ConnectionItems.cs b/src/Servers/Connections.Abstractions/src/ConnectionItems.cs
similarity index 100%
rename from src/Connections.Abstractions/ConnectionItems.cs
rename to src/Servers/Connections.Abstractions/src/ConnectionItems.cs
diff --git a/src/Connections.Abstractions/DefaultConnectionContext.cs b/src/Servers/Connections.Abstractions/src/DefaultConnectionContext.cs
similarity index 100%
rename from src/Connections.Abstractions/DefaultConnectionContext.cs
rename to src/Servers/Connections.Abstractions/src/DefaultConnectionContext.cs
diff --git a/src/Connections.Abstractions/Exceptions/AddressInUseException.cs b/src/Servers/Connections.Abstractions/src/Exceptions/AddressInUseException.cs
similarity index 100%
rename from src/Connections.Abstractions/Exceptions/AddressInUseException.cs
rename to src/Servers/Connections.Abstractions/src/Exceptions/AddressInUseException.cs
diff --git a/src/Connections.Abstractions/Exceptions/ConnectionAbortedException.cs b/src/Servers/Connections.Abstractions/src/Exceptions/ConnectionAbortedException.cs
similarity index 100%
rename from src/Connections.Abstractions/Exceptions/ConnectionAbortedException.cs
rename to src/Servers/Connections.Abstractions/src/Exceptions/ConnectionAbortedException.cs
diff --git a/src/Connections.Abstractions/Exceptions/ConnectionResetException.cs b/src/Servers/Connections.Abstractions/src/Exceptions/ConnectionResetException.cs
similarity index 100%
rename from src/Connections.Abstractions/Exceptions/ConnectionResetException.cs
rename to src/Servers/Connections.Abstractions/src/Exceptions/ConnectionResetException.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionHeartbeatFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionHeartbeatFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionHeartbeatFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionHeartbeatFeature.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionIdFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionIdFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionIdFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionIdFeature.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionInherentKeepAliveFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionInherentKeepAliveFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionInherentKeepAliveFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionInherentKeepAliveFeature.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionItemsFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionItemsFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionItemsFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionItemsFeature.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionLifetimeFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionLifetimeFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionLifetimeFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionLifetimeFeature.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionTransportFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionTransportFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionTransportFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionTransportFeature.cs
diff --git a/src/Connections.Abstractions/Features/IConnectionUserFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IConnectionUserFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IConnectionUserFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IConnectionUserFeature.cs
diff --git a/src/Connections.Abstractions/Features/IMemoryPoolFeature.cs b/src/Servers/Connections.Abstractions/src/Features/IMemoryPoolFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/IMemoryPoolFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/IMemoryPoolFeature.cs
diff --git a/src/Connections.Abstractions/Features/ITransferFormatFeature.cs b/src/Servers/Connections.Abstractions/src/Features/ITransferFormatFeature.cs
similarity index 100%
rename from src/Connections.Abstractions/Features/ITransferFormatFeature.cs
rename to src/Servers/Connections.Abstractions/src/Features/ITransferFormatFeature.cs
diff --git a/src/Connections.Abstractions/IConnectionBuilder.cs b/src/Servers/Connections.Abstractions/src/IConnectionBuilder.cs
similarity index 100%
rename from src/Connections.Abstractions/IConnectionBuilder.cs
rename to src/Servers/Connections.Abstractions/src/IConnectionBuilder.cs
diff --git a/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj b/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..5546aef7b8d8168dd5b6c02d05922e2b4ecfa643
--- /dev/null
+++ b/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj
@@ -0,0 +1,17 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>Core components of ASP.NET Core networking protocol stack.</Description>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore</PackageTags>
+    <NoWarn>CS1591;$(NoWarn)</NoWarn>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources" PrivateAssets="All" />
+    <Reference Include="System.IO.Pipelines" />
+  </ItemGroup>
+
+</Project>
diff --git a/src/Connections.Abstractions/TransferFormat.cs b/src/Servers/Connections.Abstractions/src/TransferFormat.cs
similarity index 100%
rename from src/Connections.Abstractions/TransferFormat.cs
rename to src/Servers/Connections.Abstractions/src/TransferFormat.cs
diff --git a/src/Connections.Abstractions/baseline.netcore.json b/src/Servers/Connections.Abstractions/src/baseline.netcore.json
similarity index 100%
rename from src/Connections.Abstractions/baseline.netcore.json
rename to src/Servers/Connections.Abstractions/src/baseline.netcore.json
diff --git a/src/Servers/Directory.Build.props b/src/Servers/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..6b358026891f98ce17b55358fcd4a220ce436d21
--- /dev/null
+++ b/src/Servers/Directory.Build.props
@@ -0,0 +1,9 @@
+<Project>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
+
+  <PropertyGroup>
+    <BaseIntermediateOutputPath>$(RepositoryRoot)obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
+    <BaseOutputPath>$(RepositoryRoot)bin\$(MSBuildProjectName)\</BaseOutputPath>
+  </PropertyGroup>
+
+</Project>
diff --git a/src/Kestrel.Core/Adapter/Internal/AdaptedPipeline.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/AdaptedPipeline.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/AdaptedPipeline.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/AdaptedPipeline.cs
diff --git a/src/Kestrel.Core/Adapter/Internal/ConnectionAdapterContext.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/ConnectionAdapterContext.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/ConnectionAdapterContext.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/ConnectionAdapterContext.cs
diff --git a/src/Kestrel.Core/Adapter/Internal/IAdaptedConnection.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/IAdaptedConnection.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/IAdaptedConnection.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/IAdaptedConnection.cs
diff --git a/src/Kestrel.Core/Adapter/Internal/IConnectionAdapter.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/IConnectionAdapter.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/IConnectionAdapter.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/IConnectionAdapter.cs
diff --git a/src/Kestrel.Core/Adapter/Internal/LoggingConnectionAdapter.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/LoggingConnectionAdapter.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/LoggingConnectionAdapter.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/LoggingConnectionAdapter.cs
diff --git a/src/Kestrel.Core/Adapter/Internal/LoggingStream.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/LoggingStream.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/LoggingStream.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/LoggingStream.cs
diff --git a/src/Kestrel.Core/Adapter/Internal/RawStream.cs b/src/Servers/Kestrel/Core/src/Adapter/Internal/RawStream.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/Internal/RawStream.cs
rename to src/Servers/Kestrel/Core/src/Adapter/Internal/RawStream.cs
diff --git a/src/Kestrel.Core/Adapter/ListenOptionsConnectionLoggingExtensions.cs b/src/Servers/Kestrel/Core/src/Adapter/ListenOptionsConnectionLoggingExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Adapter/ListenOptionsConnectionLoggingExtensions.cs
rename to src/Servers/Kestrel/Core/src/Adapter/ListenOptionsConnectionLoggingExtensions.cs
diff --git a/src/Kestrel.Core/AnyIPListenOptions.cs b/src/Servers/Kestrel/Core/src/AnyIPListenOptions.cs
similarity index 100%
rename from src/Kestrel.Core/AnyIPListenOptions.cs
rename to src/Servers/Kestrel/Core/src/AnyIPListenOptions.cs
diff --git a/src/Kestrel.Core/BadHttpRequestException.cs b/src/Servers/Kestrel/Core/src/BadHttpRequestException.cs
similarity index 100%
rename from src/Kestrel.Core/BadHttpRequestException.cs
rename to src/Servers/Kestrel/Core/src/BadHttpRequestException.cs
diff --git a/src/Kestrel.Core/ClientCertificateMode.cs b/src/Servers/Kestrel/Core/src/ClientCertificateMode.cs
similarity index 100%
rename from src/Kestrel.Core/ClientCertificateMode.cs
rename to src/Servers/Kestrel/Core/src/ClientCertificateMode.cs
diff --git a/src/Kestrel.Core/CoreStrings.resx b/src/Servers/Kestrel/Core/src/CoreStrings.resx
similarity index 100%
rename from src/Kestrel.Core/CoreStrings.resx
rename to src/Servers/Kestrel/Core/src/CoreStrings.resx
diff --git a/src/Kestrel.Core/EndpointConfiguration.cs b/src/Servers/Kestrel/Core/src/EndpointConfiguration.cs
similarity index 100%
rename from src/Kestrel.Core/EndpointConfiguration.cs
rename to src/Servers/Kestrel/Core/src/EndpointConfiguration.cs
diff --git a/src/Kestrel.Core/Features/IConnectionTimeoutFeature.cs b/src/Servers/Kestrel/Core/src/Features/IConnectionTimeoutFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Features/IConnectionTimeoutFeature.cs
rename to src/Servers/Kestrel/Core/src/Features/IConnectionTimeoutFeature.cs
diff --git a/src/Kestrel.Core/Features/IDecrementConcurrentConnectionCountFeature.cs b/src/Servers/Kestrel/Core/src/Features/IDecrementConcurrentConnectionCountFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Features/IDecrementConcurrentConnectionCountFeature.cs
rename to src/Servers/Kestrel/Core/src/Features/IDecrementConcurrentConnectionCountFeature.cs
diff --git a/src/Kestrel.Core/Features/IHttp2StreamIdFeature.cs b/src/Servers/Kestrel/Core/src/Features/IHttp2StreamIdFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Features/IHttp2StreamIdFeature.cs
rename to src/Servers/Kestrel/Core/src/Features/IHttp2StreamIdFeature.cs
diff --git a/src/Kestrel.Core/Features/IHttpMinRequestBodyDataRateFeature.cs b/src/Servers/Kestrel/Core/src/Features/IHttpMinRequestBodyDataRateFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Features/IHttpMinRequestBodyDataRateFeature.cs
rename to src/Servers/Kestrel/Core/src/Features/IHttpMinRequestBodyDataRateFeature.cs
diff --git a/src/Kestrel.Core/Features/IHttpMinResponseDataRateFeature.cs b/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Features/IHttpMinResponseDataRateFeature.cs
rename to src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
diff --git a/src/Kestrel.Core/Features/ITlsApplicationProtocolFeature.cs b/src/Servers/Kestrel/Core/src/Features/ITlsApplicationProtocolFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Features/ITlsApplicationProtocolFeature.cs
rename to src/Servers/Kestrel/Core/src/Features/ITlsApplicationProtocolFeature.cs
diff --git a/src/Kestrel.Core/HttpProtocols.cs b/src/Servers/Kestrel/Core/src/HttpProtocols.cs
similarity index 100%
rename from src/Kestrel.Core/HttpProtocols.cs
rename to src/Servers/Kestrel/Core/src/HttpProtocols.cs
diff --git a/src/Kestrel.Core/HttpsConnectionAdapterOptions.cs b/src/Servers/Kestrel/Core/src/HttpsConnectionAdapterOptions.cs
similarity index 100%
rename from src/Kestrel.Core/HttpsConnectionAdapterOptions.cs
rename to src/Servers/Kestrel/Core/src/HttpsConnectionAdapterOptions.cs
diff --git a/src/Kestrel.Core/Internal/AddressBindContext.cs b/src/Servers/Kestrel/Core/src/Internal/AddressBindContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/AddressBindContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/AddressBindContext.cs
diff --git a/src/Kestrel.Core/Internal/AddressBinder.cs b/src/Servers/Kestrel/Core/src/Internal/AddressBinder.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/AddressBinder.cs
rename to src/Servers/Kestrel/Core/src/Internal/AddressBinder.cs
diff --git a/src/Kestrel.Core/Internal/BufferReader.cs b/src/Servers/Kestrel/Core/src/Internal/BufferReader.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/BufferReader.cs
rename to src/Servers/Kestrel/Core/src/Internal/BufferReader.cs
diff --git a/src/Kestrel.Core/Internal/BufferWriter.cs b/src/Servers/Kestrel/Core/src/Internal/BufferWriter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/BufferWriter.cs
rename to src/Servers/Kestrel/Core/src/Internal/BufferWriter.cs
diff --git a/src/Kestrel.Core/Internal/CertificateLoader.cs b/src/Servers/Kestrel/Core/src/Internal/CertificateLoader.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/CertificateLoader.cs
rename to src/Servers/Kestrel/Core/src/Internal/CertificateLoader.cs
diff --git a/src/Kestrel.Core/Internal/ClosedStream.cs b/src/Servers/Kestrel/Core/src/Internal/ClosedStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ClosedStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/ClosedStream.cs
diff --git a/src/Kestrel.Core/Internal/ConfigurationReader.cs b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ConfigurationReader.cs
rename to src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs
diff --git a/src/Kestrel.Core/Internal/ConnectionDispatcher.cs b/src/Servers/Kestrel/Core/src/Internal/ConnectionDispatcher.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ConnectionDispatcher.cs
rename to src/Servers/Kestrel/Core/src/Internal/ConnectionDispatcher.cs
diff --git a/src/Kestrel.Core/Internal/ConnectionLimitMiddleware.cs b/src/Servers/Kestrel/Core/src/Internal/ConnectionLimitMiddleware.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ConnectionLimitMiddleware.cs
rename to src/Servers/Kestrel/Core/src/Internal/ConnectionLimitMiddleware.cs
diff --git a/src/Kestrel.Core/Internal/ConnectionLogScope.cs b/src/Servers/Kestrel/Core/src/Internal/ConnectionLogScope.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ConnectionLogScope.cs
rename to src/Servers/Kestrel/Core/src/Internal/ConnectionLogScope.cs
diff --git a/src/Kestrel.Core/Internal/DuplexPipe.cs b/src/Servers/Kestrel/Core/src/Internal/DuplexPipe.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/DuplexPipe.cs
rename to src/Servers/Kestrel/Core/src/Internal/DuplexPipe.cs
diff --git a/src/Kestrel.Core/Internal/Http/ChunkWriter.cs b/src/Servers/Kestrel/Core/src/Internal/Http/ChunkWriter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/ChunkWriter.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/ChunkWriter.cs
diff --git a/src/Kestrel.Core/Internal/Http/ConnectionOptions.cs b/src/Servers/Kestrel/Core/src/Internal/Http/ConnectionOptions.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/ConnectionOptions.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/ConnectionOptions.cs
diff --git a/src/Kestrel.Core/Internal/Http/DateHeaderValueManager.cs b/src/Servers/Kestrel/Core/src/Internal/Http/DateHeaderValueManager.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/DateHeaderValueManager.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/DateHeaderValueManager.cs
diff --git a/src/Kestrel.Core/Internal/Http/Http1Connection.FeatureCollection.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.FeatureCollection.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/Http1Connection.FeatureCollection.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.FeatureCollection.cs
diff --git a/src/Kestrel.Core/Internal/Http/Http1Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/Http1Connection.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs
diff --git a/src/Kestrel.Core/Internal/Http/Http1ConnectionContext.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1ConnectionContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/Http1ConnectionContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/Http1ConnectionContext.cs
diff --git a/src/Kestrel.Core/Internal/Http/Http1MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/Http1MessageBody.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs
diff --git a/src/Kestrel.Core/Internal/Http/Http1OutputProducer.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1OutputProducer.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/Http1OutputProducer.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/Http1OutputProducer.cs
diff --git a/src/Kestrel.Core/Internal/Http/Http1ParsingHandler.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1ParsingHandler.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/Http1ParsingHandler.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/Http1ParsingHandler.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpHeaders.Generated.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpHeaders.Generated.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpHeaders.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpHeaders.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpMethod.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpMethod.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpMethod.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpMethod.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpParser.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpParser.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpParser.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpParser.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpProtocol.FeatureCollection.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.FeatureCollection.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpProtocol.FeatureCollection.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.FeatureCollection.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpProtocol.Generated.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.Generated.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpProtocol.Generated.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.Generated.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpProtocol.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpProtocol.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpRequestHeaders.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestHeaders.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpRequestHeaders.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestHeaders.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpRequestStream.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpRequestStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestStream.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpRequestTargetForm.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestTargetForm.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpRequestTargetForm.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpRequestTargetForm.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpResponseHeaders.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpResponseHeaders.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpResponseHeaders.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpResponseHeaders.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpResponseStream.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpResponseStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpResponseStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpResponseStream.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpScheme.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpScheme.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpScheme.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpScheme.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpStreamState.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpStreamState.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpStreamState.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpStreamState.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpUpgradeStream.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpUpgradeStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpUpgradeStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpUpgradeStream.cs
diff --git a/src/Kestrel.Core/Internal/Http/HttpVersion.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpVersion.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/HttpVersion.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/HttpVersion.cs
diff --git a/src/Kestrel.Core/Internal/Http/IHttpHeadersHandler.cs b/src/Servers/Kestrel/Core/src/Internal/Http/IHttpHeadersHandler.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/IHttpHeadersHandler.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/IHttpHeadersHandler.cs
diff --git a/src/Kestrel.Core/Internal/Http/IHttpOutputProducer.cs b/src/Servers/Kestrel/Core/src/Internal/Http/IHttpOutputProducer.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/IHttpOutputProducer.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/IHttpOutputProducer.cs
diff --git a/src/Kestrel.Core/Internal/Http/IHttpParser.cs b/src/Servers/Kestrel/Core/src/Internal/Http/IHttpParser.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/IHttpParser.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/IHttpParser.cs
diff --git a/src/Kestrel.Core/Internal/Http/IHttpProtocolContext.cs b/src/Servers/Kestrel/Core/src/Internal/Http/IHttpProtocolContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/IHttpProtocolContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/IHttpProtocolContext.cs
diff --git a/src/Kestrel.Core/Internal/Http/IHttpRequestLineHandler.cs b/src/Servers/Kestrel/Core/src/Internal/Http/IHttpRequestLineHandler.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/IHttpRequestLineHandler.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/IHttpRequestLineHandler.cs
diff --git a/src/Kestrel.Core/Internal/Http/IHttpResponseControl.cs b/src/Servers/Kestrel/Core/src/Internal/Http/IHttpResponseControl.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/IHttpResponseControl.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/IHttpResponseControl.cs
diff --git a/src/Kestrel.Core/Internal/Http/MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/MessageBody.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/MessageBody.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/MessageBody.cs
diff --git a/src/Kestrel.Core/Internal/Http/PathNormalizer.cs b/src/Servers/Kestrel/Core/src/Internal/Http/PathNormalizer.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/PathNormalizer.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/PathNormalizer.cs
diff --git a/src/Kestrel.Core/Internal/Http/PipelineExtensions.cs b/src/Servers/Kestrel/Core/src/Internal/Http/PipelineExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/PipelineExtensions.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/PipelineExtensions.cs
diff --git a/src/Kestrel.Core/Internal/Http/ProduceEndType.cs b/src/Servers/Kestrel/Core/src/Internal/Http/ProduceEndType.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/ProduceEndType.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/ProduceEndType.cs
diff --git a/src/Kestrel.Core/Internal/Http/ReasonPhrases.cs b/src/Servers/Kestrel/Core/src/Internal/Http/ReasonPhrases.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/ReasonPhrases.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/ReasonPhrases.cs
diff --git a/src/Kestrel.Core/Internal/Http/RequestProcessingStatus.cs b/src/Servers/Kestrel/Core/src/Internal/Http/RequestProcessingStatus.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/RequestProcessingStatus.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/RequestProcessingStatus.cs
diff --git a/src/Kestrel.Core/Internal/Http/RequestRejectionReason.cs b/src/Servers/Kestrel/Core/src/Internal/Http/RequestRejectionReason.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/RequestRejectionReason.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/RequestRejectionReason.cs
diff --git a/src/Kestrel.Core/Internal/Http/TransferCoding.cs b/src/Servers/Kestrel/Core/src/Internal/Http/TransferCoding.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/TransferCoding.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/TransferCoding.cs
diff --git a/src/Kestrel.Core/Internal/Http/UrlDecoder.cs b/src/Servers/Kestrel/Core/src/Internal/Http/UrlDecoder.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http/UrlDecoder.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http/UrlDecoder.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/DynamicTable.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/DynamicTable.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/DynamicTable.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/DynamicTable.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/HPackDecoder.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HPackDecoder.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/HPackDecoder.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HPackDecoder.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/HPackDecodingException.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HPackDecodingException.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/HPackDecodingException.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HPackDecodingException.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/HPackEncoder.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HPackEncoder.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/HPackEncoder.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HPackEncoder.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/HeaderField.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HeaderField.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/HeaderField.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HeaderField.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/Huffman.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/Huffman.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/Huffman.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/Huffman.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/HuffmanDecodingException.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HuffmanDecodingException.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/HuffmanDecodingException.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/HuffmanDecodingException.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/IntegerDecoder.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/IntegerDecoder.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/IntegerDecoder.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/IntegerDecoder.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/IntegerEncoder.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/IntegerEncoder.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/IntegerEncoder.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/IntegerEncoder.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/StaticTable.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/StaticTable.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/StaticTable.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/StaticTable.cs
diff --git a/src/Kestrel.Core/Internal/Http2/HPack/StatusCodes.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/HPack/StatusCodes.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/HPack/StatusCodes.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/HPack/StatusCodes.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Connection.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2ConnectionContext.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2ConnectionContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2ConnectionContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2ConnectionContext.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2ConnectionErrorException.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2ConnectionErrorException.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2ConnectionErrorException.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2ConnectionErrorException.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2ContinuationFrameFlags.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2ContinuationFrameFlags.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2ContinuationFrameFlags.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2ContinuationFrameFlags.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2DataFrameFlags.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2DataFrameFlags.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2DataFrameFlags.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2DataFrameFlags.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2ErrorCode.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2ErrorCode.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2ErrorCode.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2ErrorCode.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.Continuation.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Continuation.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.Continuation.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Continuation.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.Data.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Data.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.Data.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Data.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.GoAway.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.GoAway.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.GoAway.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.GoAway.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.Headers.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Headers.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.Headers.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Headers.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.Ping.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Ping.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.Ping.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Ping.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.Priority.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Priority.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.Priority.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Priority.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.RstStream.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.RstStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.RstStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.RstStream.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.Settings.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Settings.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.Settings.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.Settings.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.WindowUpdate.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.WindowUpdate.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.WindowUpdate.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.WindowUpdate.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Frame.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Frame.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Frame.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2FrameReader.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameReader.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2FrameReader.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameReader.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2FrameType.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameType.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2FrameType.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameType.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2FrameWriter.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2FrameWriter.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2HeadersFrameFlags.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2HeadersFrameFlags.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2HeadersFrameFlags.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2HeadersFrameFlags.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2MessageBody.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2MessageBody.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2MessageBody.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2OutputProducer.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2OutputProducer.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2OutputProducer.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2OutputProducer.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2PeerSetting.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2PeerSetting.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2PeerSetting.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2PeerSetting.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2PeerSettings.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2PeerSettings.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2PeerSettings.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2PeerSettings.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2PingFrameFlags.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2PingFrameFlags.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2PingFrameFlags.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2PingFrameFlags.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2SettingsFrameFlags.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2SettingsFrameFlags.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2SettingsFrameFlags.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2SettingsFrameFlags.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2SettingsParameter.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2SettingsParameter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2SettingsParameter.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2SettingsParameter.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2SettingsParameterOutOfRangeException.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2SettingsParameterOutOfRangeException.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2SettingsParameterOutOfRangeException.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2SettingsParameterOutOfRangeException.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Stream.FeatureCollection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Stream.FeatureCollection.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Stream.FeatureCollection.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Stream.FeatureCollection.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2Stream.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Stream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2Stream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2Stream.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2StreamContext.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2StreamContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2StreamContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2StreamContext.cs
diff --git a/src/Kestrel.Core/Internal/Http2/Http2StreamErrorException.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2StreamErrorException.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/Http2StreamErrorException.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/Http2StreamErrorException.cs
diff --git a/src/Kestrel.Core/Internal/Http2/IHttp2FrameWriter.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/IHttp2FrameWriter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/IHttp2FrameWriter.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/IHttp2FrameWriter.cs
diff --git a/src/Kestrel.Core/Internal/Http2/IHttp2StreamLifetimeHandler.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/IHttp2StreamLifetimeHandler.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Http2/IHttp2StreamLifetimeHandler.cs
rename to src/Servers/Kestrel/Core/src/Internal/Http2/IHttp2StreamLifetimeHandler.cs
diff --git a/src/Kestrel.Core/Internal/HttpConnection.cs b/src/Servers/Kestrel/Core/src/Internal/HttpConnection.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/HttpConnection.cs
rename to src/Servers/Kestrel/Core/src/Internal/HttpConnection.cs
diff --git a/src/Kestrel.Core/Internal/HttpConnectionBuilderExtensions.cs b/src/Servers/Kestrel/Core/src/Internal/HttpConnectionBuilderExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/HttpConnectionBuilderExtensions.cs
rename to src/Servers/Kestrel/Core/src/Internal/HttpConnectionBuilderExtensions.cs
diff --git a/src/Kestrel.Core/Internal/HttpConnectionContext.cs b/src/Servers/Kestrel/Core/src/Internal/HttpConnectionContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/HttpConnectionContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/HttpConnectionContext.cs
diff --git a/src/Kestrel.Core/Internal/HttpConnectionMiddleware.cs b/src/Servers/Kestrel/Core/src/Internal/HttpConnectionMiddleware.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/HttpConnectionMiddleware.cs
rename to src/Servers/Kestrel/Core/src/Internal/HttpConnectionMiddleware.cs
diff --git a/src/Kestrel.Core/Internal/HttpsConnectionAdapter.cs b/src/Servers/Kestrel/Core/src/Internal/HttpsConnectionAdapter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/HttpsConnectionAdapter.cs
rename to src/Servers/Kestrel/Core/src/Internal/HttpsConnectionAdapter.cs
diff --git a/src/Kestrel.Core/Internal/IRequestProcessor.cs b/src/Servers/Kestrel/Core/src/Internal/IRequestProcessor.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/IRequestProcessor.cs
rename to src/Servers/Kestrel/Core/src/Internal/IRequestProcessor.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/CancellationTokenExtensions.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/CancellationTokenExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/CancellationTokenExtensions.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/CancellationTokenExtensions.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/Constants.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Constants.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/Constants.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/Constants.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/CorrelationIdGenerator.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/CorrelationIdGenerator.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/CorrelationIdGenerator.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/CorrelationIdGenerator.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/DebuggerWrapper.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/DebuggerWrapper.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/DebuggerWrapper.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/DebuggerWrapper.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/Disposable.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Disposable.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/Disposable.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/Disposable.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/DisposableAction.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/DisposableAction.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/DisposableAction.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/DisposableAction.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/Heartbeat.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/Heartbeat.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/Heartbeat.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/HttpConnectionManager.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpConnectionManager.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/HttpConnectionManager.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpConnectionManager.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/HttpConnectionManagerShutdownExtensions.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpConnectionManagerShutdownExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/HttpConnectionManagerShutdownExtensions.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpConnectionManagerShutdownExtensions.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/HttpConnectionReference.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpConnectionReference.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/HttpConnectionReference.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpConnectionReference.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/HttpHeartbeatManager.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpHeartbeatManager.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/HttpHeartbeatManager.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpHeartbeatManager.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/HttpUtilities.Generated.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.Generated.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/HttpUtilities.Generated.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.Generated.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/HttpUtilities.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/HttpUtilities.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/IDebugger.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IDebugger.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/IDebugger.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/IDebugger.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/IHeartbeatHandler.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IHeartbeatHandler.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/IHeartbeatHandler.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/IHeartbeatHandler.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/IKestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/IKestrelTrace.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/ISystemClock.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ISystemClock.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/ISystemClock.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/ISystemClock.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/ITimeoutControl.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ITimeoutControl.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/ITimeoutControl.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/ITimeoutControl.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/KestrelEventSource.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelEventSource.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/KestrelEventSource.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelEventSource.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/KestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/KestrelTrace.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/ReadOnlyStream.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ReadOnlyStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/ReadOnlyStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/ReadOnlyStream.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/ResourceCounter.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ResourceCounter.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/ResourceCounter.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/ResourceCounter.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/StackTraceHiddenAttribute.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/StackTraceHiddenAttribute.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/StackTraceHiddenAttribute.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/StackTraceHiddenAttribute.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/Streams.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/Streams.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/Streams.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/Streams.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/StringUtilities.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/StringUtilities.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/StringUtilities.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/StringUtilities.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/SystemClock.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/SystemClock.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/SystemClock.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/SystemClock.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/ThrowingWriteOnlyStream.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/ThrowingWriteOnlyStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/ThrowingWriteOnlyStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/ThrowingWriteOnlyStream.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/TimeoutAction.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/TimeoutAction.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/TimeoutAction.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/TimeoutAction.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/UriUtilities.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/UriUtilities.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/UriUtilities.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/UriUtilities.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/WrappingStream.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/WrappingStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/WrappingStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/WrappingStream.cs
diff --git a/src/Kestrel.Core/Internal/Infrastructure/WriteOnlyStream.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/WriteOnlyStream.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/Infrastructure/WriteOnlyStream.cs
rename to src/Servers/Kestrel/Core/src/Internal/Infrastructure/WriteOnlyStream.cs
diff --git a/src/Kestrel.Core/Internal/KestrelServerOptionsSetup.cs b/src/Servers/Kestrel/Core/src/Internal/KestrelServerOptionsSetup.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/KestrelServerOptionsSetup.cs
rename to src/Servers/Kestrel/Core/src/Internal/KestrelServerOptionsSetup.cs
diff --git a/src/Kestrel.Core/Internal/LoggerExtensions.cs b/src/Servers/Kestrel/Core/src/Internal/LoggerExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/LoggerExtensions.cs
rename to src/Servers/Kestrel/Core/src/Internal/LoggerExtensions.cs
diff --git a/src/Kestrel.Core/Internal/ServerAddressesFeature.cs b/src/Servers/Kestrel/Core/src/Internal/ServerAddressesFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ServerAddressesFeature.cs
rename to src/Servers/Kestrel/Core/src/Internal/ServerAddressesFeature.cs
diff --git a/src/Kestrel.Core/Internal/ServiceContext.cs b/src/Servers/Kestrel/Core/src/Internal/ServiceContext.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/ServiceContext.cs
rename to src/Servers/Kestrel/Core/src/Internal/ServiceContext.cs
diff --git a/src/Kestrel.Core/Internal/TlsConnectionFeature.cs b/src/Servers/Kestrel/Core/src/Internal/TlsConnectionFeature.cs
similarity index 100%
rename from src/Kestrel.Core/Internal/TlsConnectionFeature.cs
rename to src/Servers/Kestrel/Core/src/Internal/TlsConnectionFeature.cs
diff --git a/src/Kestrel.Core/KestrelConfigurationLoader.cs b/src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs
similarity index 100%
rename from src/Kestrel.Core/KestrelConfigurationLoader.cs
rename to src/Servers/Kestrel/Core/src/KestrelConfigurationLoader.cs
diff --git a/src/Kestrel.Core/KestrelServer.cs b/src/Servers/Kestrel/Core/src/KestrelServer.cs
similarity index 100%
rename from src/Kestrel.Core/KestrelServer.cs
rename to src/Servers/Kestrel/Core/src/KestrelServer.cs
diff --git a/src/Kestrel.Core/KestrelServerLimits.cs b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
similarity index 100%
rename from src/Kestrel.Core/KestrelServerLimits.cs
rename to src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
diff --git a/src/Kestrel.Core/KestrelServerOptions.cs b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs
similarity index 100%
rename from src/Kestrel.Core/KestrelServerOptions.cs
rename to src/Servers/Kestrel/Core/src/KestrelServerOptions.cs
diff --git a/src/Kestrel.Core/ListenOptions.cs b/src/Servers/Kestrel/Core/src/ListenOptions.cs
similarity index 100%
rename from src/Kestrel.Core/ListenOptions.cs
rename to src/Servers/Kestrel/Core/src/ListenOptions.cs
diff --git a/src/Kestrel.Core/ListenOptionsHttpsExtensions.cs b/src/Servers/Kestrel/Core/src/ListenOptionsHttpsExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/ListenOptionsHttpsExtensions.cs
rename to src/Servers/Kestrel/Core/src/ListenOptionsHttpsExtensions.cs
diff --git a/src/Kestrel.Core/LocalhostListenOptions.cs b/src/Servers/Kestrel/Core/src/LocalhostListenOptions.cs
similarity index 100%
rename from src/Kestrel.Core/LocalhostListenOptions.cs
rename to src/Servers/Kestrel/Core/src/LocalhostListenOptions.cs
diff --git a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..dae8056002d2b7beb70990b832f1e4401aea3626
--- /dev/null
+++ b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj
@@ -0,0 +1,38 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>Core components of ASP.NET Core Kestrel cross-platform web server.</Description>
+    <TargetFrameworks>netstandard2.0;netcoreapp2.1</TargetFrameworks>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore;kestrel</PackageTags>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <NoWarn>CS1591;$(NoWarn)</NoWarn>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(KestrelSharedSourceRoot)src\ThrowHelper.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Certificates.Generation.Sources" PrivateAssets="All" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.Configuration.Binder" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="System.Memory" />
+    <Reference Include="System.Numerics.Vectors" />
+    <Reference Include="System.Runtime.CompilerServices.Unsafe" />
+    <Reference Include="System.Security.Cryptography.Cng" />
+    <Reference Include="System.Threading.Tasks.Extensions" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <EmbeddedResource Update="CoreStrings.resx">
+      <Generator></Generator>
+    </EmbeddedResource>
+  </ItemGroup>
+
+</Project>
diff --git a/src/Kestrel.Core/MinDataRate.cs b/src/Servers/Kestrel/Core/src/MinDataRate.cs
similarity index 100%
rename from src/Kestrel.Core/MinDataRate.cs
rename to src/Servers/Kestrel/Core/src/MinDataRate.cs
diff --git a/src/Kestrel.Core/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/Core/src/Properties/AssemblyInfo.cs
similarity index 87%
rename from src/Kestrel.Core/Properties/AssemblyInfo.cs
rename to src/Servers/Kestrel/Core/src/Properties/AssemblyInfo.cs
index 6898d541a693f97982b5e78ef3a404b8a63798e9..1806c94cf2596800b019ddd8400f056816fc6473 100644
--- a/src/Kestrel.Core/Properties/AssemblyInfo.cs
+++ b/src/Servers/Kestrel/Core/src/Properties/AssemblyInfo.cs
@@ -7,7 +7,7 @@ using System.Runtime.CompilerServices;
 [assembly: InternalsVisibleTo("Libuv.FunctionalTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
 [assembly: InternalsVisibleTo("Sockets.FunctionalTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
 [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Core.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
-[assembly: InternalsVisibleTo("Kestrel.Performance, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Performance, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
 [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
 [assembly: InternalsVisibleTo("Http2SampleApp, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
 [assembly: InternalsVisibleTo("PlatformBenchmarks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
diff --git a/src/Kestrel.Core/Properties/CoreStrings.Designer.cs b/src/Servers/Kestrel/Core/src/Properties/CoreStrings.Designer.cs
similarity index 100%
rename from src/Kestrel.Core/Properties/CoreStrings.Designer.cs
rename to src/Servers/Kestrel/Core/src/Properties/CoreStrings.Designer.cs
diff --git a/src/Kestrel.Core/ServerAddress.cs b/src/Servers/Kestrel/Core/src/ServerAddress.cs
similarity index 100%
rename from src/Kestrel.Core/ServerAddress.cs
rename to src/Servers/Kestrel/Core/src/ServerAddress.cs
diff --git a/src/Kestrel.Core/Systemd/KestrelServerOptionsSystemdExtensions.cs b/src/Servers/Kestrel/Core/src/Systemd/KestrelServerOptionsSystemdExtensions.cs
similarity index 100%
rename from src/Kestrel.Core/Systemd/KestrelServerOptionsSystemdExtensions.cs
rename to src/Servers/Kestrel/Core/src/Systemd/KestrelServerOptionsSystemdExtensions.cs
diff --git a/src/Kestrel.Core/baseline.netcore.json b/src/Servers/Kestrel/Core/src/baseline.netcore.json
similarity index 100%
rename from src/Kestrel.Core/baseline.netcore.json
rename to src/Servers/Kestrel/Core/src/baseline.netcore.json
diff --git a/test/Kestrel.Core.Tests/AddressBinderTests.cs b/src/Servers/Kestrel/Core/test/AddressBinderTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/AddressBinderTests.cs
rename to src/Servers/Kestrel/Core/test/AddressBinderTests.cs
diff --git a/test/Kestrel.Core.Tests/AsciiDecoding.cs b/src/Servers/Kestrel/Core/test/AsciiDecoding.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/AsciiDecoding.cs
rename to src/Servers/Kestrel/Core/test/AsciiDecoding.cs
diff --git a/test/Kestrel.Core.Tests/BufferReaderTests.cs b/src/Servers/Kestrel/Core/test/BufferReaderTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/BufferReaderTests.cs
rename to src/Servers/Kestrel/Core/test/BufferReaderTests.cs
diff --git a/test/Kestrel.Core.Tests/BufferWriterTests.cs b/src/Servers/Kestrel/Core/test/BufferWriterTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/BufferWriterTests.cs
rename to src/Servers/Kestrel/Core/test/BufferWriterTests.cs
diff --git a/test/Kestrel.Core.Tests/ChunkWriterTests.cs b/src/Servers/Kestrel/Core/test/ChunkWriterTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ChunkWriterTests.cs
rename to src/Servers/Kestrel/Core/test/ChunkWriterTests.cs
diff --git a/test/Kestrel.Core.Tests/ConnectionDispatcherTests.cs b/src/Servers/Kestrel/Core/test/ConnectionDispatcherTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ConnectionDispatcherTests.cs
rename to src/Servers/Kestrel/Core/test/ConnectionDispatcherTests.cs
diff --git a/test/Kestrel.Core.Tests/DateHeaderValueManagerTests.cs b/src/Servers/Kestrel/Core/test/DateHeaderValueManagerTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/DateHeaderValueManagerTests.cs
rename to src/Servers/Kestrel/Core/test/DateHeaderValueManagerTests.cs
diff --git a/test/Kestrel.Core.Tests/DynamicTableTests.cs b/src/Servers/Kestrel/Core/test/DynamicTableTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/DynamicTableTests.cs
rename to src/Servers/Kestrel/Core/test/DynamicTableTests.cs
diff --git a/test/Kestrel.Core.Tests/HPackDecoderTests.cs b/src/Servers/Kestrel/Core/test/HPackDecoderTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HPackDecoderTests.cs
rename to src/Servers/Kestrel/Core/test/HPackDecoderTests.cs
diff --git a/test/Kestrel.Core.Tests/HPackEncoderTests.cs b/src/Servers/Kestrel/Core/test/HPackEncoderTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HPackEncoderTests.cs
rename to src/Servers/Kestrel/Core/test/HPackEncoderTests.cs
diff --git a/test/Kestrel.Core.Tests/HeartbeatTests.cs b/src/Servers/Kestrel/Core/test/HeartbeatTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HeartbeatTests.cs
rename to src/Servers/Kestrel/Core/test/HeartbeatTests.cs
diff --git a/test/Kestrel.Core.Tests/Http1ConnectionTests.cs b/src/Servers/Kestrel/Core/test/Http1ConnectionTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/Http1ConnectionTests.cs
rename to src/Servers/Kestrel/Core/test/Http1ConnectionTests.cs
diff --git a/test/Kestrel.Core.Tests/Http2ConnectionTests.cs b/src/Servers/Kestrel/Core/test/Http2ConnectionTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/Http2ConnectionTests.cs
rename to src/Servers/Kestrel/Core/test/Http2ConnectionTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpConnectionManagerTests.cs b/src/Servers/Kestrel/Core/test/HttpConnectionManagerTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpConnectionManagerTests.cs
rename to src/Servers/Kestrel/Core/test/HttpConnectionManagerTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpConnectionTests.cs b/src/Servers/Kestrel/Core/test/HttpConnectionTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpConnectionTests.cs
rename to src/Servers/Kestrel/Core/test/HttpConnectionTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpHeadersTests.cs b/src/Servers/Kestrel/Core/test/HttpHeadersTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpHeadersTests.cs
rename to src/Servers/Kestrel/Core/test/HttpHeadersTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpParserTests.cs b/src/Servers/Kestrel/Core/test/HttpParserTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpParserTests.cs
rename to src/Servers/Kestrel/Core/test/HttpParserTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpProtocolFeatureCollectionTests.cs b/src/Servers/Kestrel/Core/test/HttpProtocolFeatureCollectionTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpProtocolFeatureCollectionTests.cs
rename to src/Servers/Kestrel/Core/test/HttpProtocolFeatureCollectionTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpRequestHeadersTests.cs b/src/Servers/Kestrel/Core/test/HttpRequestHeadersTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpRequestHeadersTests.cs
rename to src/Servers/Kestrel/Core/test/HttpRequestHeadersTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpRequestStreamTests.cs b/src/Servers/Kestrel/Core/test/HttpRequestStreamTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpRequestStreamTests.cs
rename to src/Servers/Kestrel/Core/test/HttpRequestStreamTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpResponseHeadersTests.cs b/src/Servers/Kestrel/Core/test/HttpResponseHeadersTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpResponseHeadersTests.cs
rename to src/Servers/Kestrel/Core/test/HttpResponseHeadersTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpResponseStreamTests.cs b/src/Servers/Kestrel/Core/test/HttpResponseStreamTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpResponseStreamTests.cs
rename to src/Servers/Kestrel/Core/test/HttpResponseStreamTests.cs
diff --git a/test/Kestrel.Core.Tests/HttpUtilitiesTest.cs b/src/Servers/Kestrel/Core/test/HttpUtilitiesTest.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HttpUtilitiesTest.cs
rename to src/Servers/Kestrel/Core/test/HttpUtilitiesTest.cs
diff --git a/test/Kestrel.Core.Tests/HuffmanTests.cs b/src/Servers/Kestrel/Core/test/HuffmanTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/HuffmanTests.cs
rename to src/Servers/Kestrel/Core/test/HuffmanTests.cs
diff --git a/test/Kestrel.Core.Tests/IntegerDecoderTests.cs b/src/Servers/Kestrel/Core/test/IntegerDecoderTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/IntegerDecoderTests.cs
rename to src/Servers/Kestrel/Core/test/IntegerDecoderTests.cs
diff --git a/test/Kestrel.Core.Tests/IntegerEncoderTests.cs b/src/Servers/Kestrel/Core/test/IntegerEncoderTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/IntegerEncoderTests.cs
rename to src/Servers/Kestrel/Core/test/IntegerEncoderTests.cs
diff --git a/test/Kestrel.Core.Tests/KestrelEventSourceTests.cs b/src/Servers/Kestrel/Core/test/KestrelEventSourceTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/KestrelEventSourceTests.cs
rename to src/Servers/Kestrel/Core/test/KestrelEventSourceTests.cs
diff --git a/test/Kestrel.Core.Tests/KestrelServerLimitsTests.cs b/src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/KestrelServerLimitsTests.cs
rename to src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs
diff --git a/test/Kestrel.Core.Tests/KestrelServerOptionsTests.cs b/src/Servers/Kestrel/Core/test/KestrelServerOptionsTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/KestrelServerOptionsTests.cs
rename to src/Servers/Kestrel/Core/test/KestrelServerOptionsTests.cs
diff --git a/test/Kestrel.Core.Tests/KestrelServerTests.cs b/src/Servers/Kestrel/Core/test/KestrelServerTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/KestrelServerTests.cs
rename to src/Servers/Kestrel/Core/test/KestrelServerTests.cs
diff --git a/test/Kestrel.Core.Tests/KnownStringsTests.cs b/src/Servers/Kestrel/Core/test/KnownStringsTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/KnownStringsTests.cs
rename to src/Servers/Kestrel/Core/test/KnownStringsTests.cs
diff --git a/test/Kestrel.Core.Tests/ListenOptionsTests.cs b/src/Servers/Kestrel/Core/test/ListenOptionsTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ListenOptionsTests.cs
rename to src/Servers/Kestrel/Core/test/ListenOptionsTests.cs
diff --git a/test/Kestrel.Core.Tests/MessageBodyTests.cs b/src/Servers/Kestrel/Core/test/MessageBodyTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/MessageBodyTests.cs
rename to src/Servers/Kestrel/Core/test/MessageBodyTests.cs
diff --git a/src/Servers/Kestrel/Core/test/Microsoft.AspNetCore.Server.Kestrel.Core.Tests.csproj b/src/Servers/Kestrel/Core/test/Microsoft.AspNetCore.Server.Kestrel.Core.Tests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..e11845c901988162991b72b2de535e0beda259c8
--- /dev/null
+++ b/src/Servers/Kestrel/Core/test/Microsoft.AspNetCore.Server.Kestrel.Core.Tests.csproj
@@ -0,0 +1,23 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(KestrelSharedSourceRoot)test\**\*.cs" />
+    <Compile Include="$(RepositoryRoot)\src\Shared\Buffers.Testing\*.cs" />
+    <Content Include="$(KestrelSharedSourceRoot)test\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="System.Memory" />
+    <Reference Include="System.Runtime.CompilerServices.Unsafe" />
+  </ItemGroup>
+
+</Project>
diff --git a/test/Kestrel.Core.Tests/MinDataRateTests.cs b/src/Servers/Kestrel/Core/test/MinDataRateTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/MinDataRateTests.cs
rename to src/Servers/Kestrel/Core/test/MinDataRateTests.cs
diff --git a/test/Kestrel.Core.Tests/OutputProducerTests.cs b/src/Servers/Kestrel/Core/test/OutputProducerTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/OutputProducerTests.cs
rename to src/Servers/Kestrel/Core/test/OutputProducerTests.cs
diff --git a/test/Kestrel.Core.Tests/PathNormalizerTests.cs b/src/Servers/Kestrel/Core/test/PathNormalizerTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/PathNormalizerTests.cs
rename to src/Servers/Kestrel/Core/test/PathNormalizerTests.cs
diff --git a/test/Kestrel.Core.Tests/PipeOptionsTests.cs b/src/Servers/Kestrel/Core/test/PipeOptionsTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/PipeOptionsTests.cs
rename to src/Servers/Kestrel/Core/test/PipeOptionsTests.cs
diff --git a/test/Kestrel.Core.Tests/PipelineExtensionTests.cs b/src/Servers/Kestrel/Core/test/PipelineExtensionTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/PipelineExtensionTests.cs
rename to src/Servers/Kestrel/Core/test/PipelineExtensionTests.cs
diff --git a/test/Kestrel.Core.Tests/ReasonPhrasesTests.cs b/src/Servers/Kestrel/Core/test/ReasonPhrasesTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ReasonPhrasesTests.cs
rename to src/Servers/Kestrel/Core/test/ReasonPhrasesTests.cs
diff --git a/test/Kestrel.Core.Tests/ResourceCounterTests.cs b/src/Servers/Kestrel/Core/test/ResourceCounterTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ResourceCounterTests.cs
rename to src/Servers/Kestrel/Core/test/ResourceCounterTests.cs
diff --git a/test/Kestrel.Core.Tests/ServerAddressTests.cs b/src/Servers/Kestrel/Core/test/ServerAddressTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ServerAddressTests.cs
rename to src/Servers/Kestrel/Core/test/ServerAddressTests.cs
diff --git a/test/Kestrel.Core.Tests/StreamsTests.cs b/src/Servers/Kestrel/Core/test/StreamsTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/StreamsTests.cs
rename to src/Servers/Kestrel/Core/test/StreamsTests.cs
diff --git a/test/Kestrel.Core.Tests/StringUtilitiesTests.cs b/src/Servers/Kestrel/Core/test/StringUtilitiesTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/StringUtilitiesTests.cs
rename to src/Servers/Kestrel/Core/test/StringUtilitiesTests.cs
diff --git a/test/Kestrel.Core.Tests/TestHelpers/AssertExtensions.cs b/src/Servers/Kestrel/Core/test/TestHelpers/AssertExtensions.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/TestHelpers/AssertExtensions.cs
rename to src/Servers/Kestrel/Core/test/TestHelpers/AssertExtensions.cs
diff --git a/test/Kestrel.Core.Tests/TestHelpers/MockHttpResponseControl.cs b/src/Servers/Kestrel/Core/test/TestHelpers/MockHttpResponseControl.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/TestHelpers/MockHttpResponseControl.cs
rename to src/Servers/Kestrel/Core/test/TestHelpers/MockHttpResponseControl.cs
diff --git a/test/Kestrel.Core.Tests/TestInput.cs b/src/Servers/Kestrel/Core/test/TestInput.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/TestInput.cs
rename to src/Servers/Kestrel/Core/test/TestInput.cs
diff --git a/test/Kestrel.Core.Tests/ThrowingWriteOnlyStreamTests.cs b/src/Servers/Kestrel/Core/test/ThrowingWriteOnlyStreamTests.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/ThrowingWriteOnlyStreamTests.cs
rename to src/Servers/Kestrel/Core/test/ThrowingWriteOnlyStreamTests.cs
diff --git a/src/Servers/Kestrel/Directory.Build.props b/src/Servers/Kestrel/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..ad68f6ce2abc881df095f876737fe2c416638810
--- /dev/null
+++ b/src/Servers/Kestrel/Directory.Build.props
@@ -0,0 +1,25 @@
+<Project>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
+
+  <PropertyGroup>
+    <DefineConstants Condition="'$(InnerLoop)' != ''">$(DefineConstants);INNER_LOOP</DefineConstants>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <!-- https://github.com/aspnet/KestrelHttpServer/issues/2350 -->
+    <EnableApiCheck>false</EnableApiCheck>
+    <KestrelSharedSourceRoot>$(MSBuildThisFileDirectory)shared\</KestrelSharedSourceRoot>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(IsTestProject)' == 'true' ">
+    <!--
+      Workaround for "Use executable flags in Microsoft.NET.Test.Sdk" (https://github.com/Microsoft/vstest/issues/792).
+      Remove when fixed.
+    -->
+    <HasRuntimeOutput>true</HasRuntimeOutput>
+  </PropertyGroup>
+
+  <ItemGroup  Condition=" '$(IsTestProject)' == 'true' ">
+    <None Include="$(MSBuildThisFileDirectory)xunit.runner.json" Link="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+</Project>
diff --git a/src/Kestrel.Https/Kestrel.Https.csproj b/src/Servers/Kestrel/Https/src/Microsoft.AspNetCore.Server.Kestrel.Https.csproj
similarity index 53%
rename from src/Kestrel.Https/Kestrel.Https.csproj
rename to src/Servers/Kestrel/Https/src/Microsoft.AspNetCore.Server.Kestrel.Https.csproj
index 8b3226529eba66e05bf7842e4983af3e834e9df7..9e6fde40bd486f809c87f09b4fb97358a7058acf 100644
--- a/src/Kestrel.Https/Kestrel.Https.csproj
+++ b/src/Servers/Kestrel/Https/src/Microsoft.AspNetCore.Server.Kestrel.Https.csproj
@@ -1,8 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Https</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Https</RootNamespace>
     <Description>HTTPS support for the ASP.NET Core Kestrel cross-platform web server.</Description>
     <TargetFrameworks>netstandard2.0;netcoreapp2.1</TargetFrameworks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
@@ -11,11 +9,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\Kestrel.Core\Kestrel.Core.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Kestrel.Https/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/Https/src/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Kestrel.Https/Properties/AssemblyInfo.cs
rename to src/Servers/Kestrel/Https/src/Properties/AssemblyInfo.cs
diff --git a/src/Kestrel.Https/baseline.netcore.json b/src/Servers/Kestrel/Https/src/baseline.netcore.json
similarity index 100%
rename from src/Kestrel.Https/baseline.netcore.json
rename to src/Servers/Kestrel/Https/src/baseline.netcore.json
diff --git a/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj b/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..6b8de4426f3ea964c6ac31b769d3cba3f9e270ab
--- /dev/null
+++ b/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>ASP.NET Core Kestrel cross-platform web server.</Description>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore;kestrel</PackageTags>
+    <NoWarn>CS1591;$(NoWarn)</NoWarn>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
+  </ItemGroup>
+
+</Project>
diff --git a/src/Kestrel/WebHostBuilderKestrelExtensions.cs b/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs
similarity index 100%
rename from src/Kestrel/WebHostBuilderKestrelExtensions.cs
rename to src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs
diff --git a/src/Kestrel/baseline.netcore.json b/src/Servers/Kestrel/Kestrel/src/baseline.netcore.json
similarity index 100%
rename from src/Kestrel/baseline.netcore.json
rename to src/Servers/Kestrel/Kestrel/src/baseline.netcore.json
diff --git a/test/Kestrel.Tests/ConfigurationReaderTests.cs b/src/Servers/Kestrel/Kestrel/test/ConfigurationReaderTests.cs
similarity index 100%
rename from test/Kestrel.Tests/ConfigurationReaderTests.cs
rename to src/Servers/Kestrel/Kestrel/test/ConfigurationReaderTests.cs
diff --git a/test/Kestrel.Tests/KestrelConfigurationBuilderTests.cs b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs
similarity index 100%
rename from test/Kestrel.Tests/KestrelConfigurationBuilderTests.cs
rename to src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs
diff --git a/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj b/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..9bb414d3215a7cd3342948e69f6624df14265c50
--- /dev/null
+++ b/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj
@@ -0,0 +1,17 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(KestrelSharedSourceRoot)test\**\*.cs" />
+    <Content Include="$(KestrelSharedSourceRoot)test\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+  </ItemGroup>
+
+</Project>
diff --git a/test/Kestrel.Tests/WebHostBuilderKestrelExtensionsTests.cs b/src/Servers/Kestrel/Kestrel/test/WebHostBuilderKestrelExtensionsTests.cs
similarity index 100%
rename from test/Kestrel.Tests/WebHostBuilderKestrelExtensionsTests.cs
rename to src/Servers/Kestrel/Kestrel/test/WebHostBuilderKestrelExtensionsTests.cs
diff --git a/src/Servers/Kestrel/README.md b/src/Servers/Kestrel/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5aaf71c466d33f75cd2950ea224751fd9f524cdb
--- /dev/null
+++ b/src/Servers/Kestrel/README.md
@@ -0,0 +1,8 @@
+KestrelHttpServer
+=================
+
+Kestrel is a cross-platform web server for ASP.NET Core.
+
+## File logging for functional test
+
+Turn on file logging for Kestrel functional tests by specifying the environment variable ASPNETCORE_TEST_LOG_DIR to the log output directory.
diff --git a/src/Kestrel.Transport.Abstractions/Internal/FileHandleType.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/FileHandleType.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/FileHandleType.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/FileHandleType.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/IApplicationTransportFeature.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/IApplicationTransportFeature.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/IApplicationTransportFeature.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/IApplicationTransportFeature.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/IBytesWrittenFeature.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/IBytesWrittenFeature.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/IBytesWrittenFeature.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/IBytesWrittenFeature.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/IConnectionDispatcher.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/IConnectionDispatcher.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/IConnectionDispatcher.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/IConnectionDispatcher.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/IEndPointInformation.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/IEndPointInformation.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/IEndPointInformation.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/IEndPointInformation.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/ITransport.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/ITransport.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/ITransport.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/ITransport.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/ITransportFactory.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/ITransportFactory.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/ITransportFactory.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/ITransportFactory.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/ITransportSchedulerFeature.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/ITransportSchedulerFeature.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/ITransportSchedulerFeature.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/ITransportSchedulerFeature.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/KestrelMemoryPool.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/KestrelMemoryPool.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/KestrelMemoryPool.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/KestrelMemoryPool.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/ListenType.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/ListenType.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/ListenType.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/ListenType.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/MemoryPoolBlock.Debug.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/MemoryPoolBlock.Debug.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/MemoryPoolBlock.Debug.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/MemoryPoolBlock.Debug.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/MemoryPoolBlock.Release.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/MemoryPoolBlock.Release.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/MemoryPoolBlock.Release.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/MemoryPoolBlock.Release.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/MemoryPoolSlab.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/MemoryPoolSlab.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/MemoryPoolSlab.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/MemoryPoolSlab.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/SchedulingMode.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/SchedulingMode.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/SchedulingMode.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/SchedulingMode.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/SlabMemoryPool.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/SlabMemoryPool.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/SlabMemoryPool.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/SlabMemoryPool.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/TransportConnection.Features.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/TransportConnection.Features.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/TransportConnection.Features.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/TransportConnection.Features.cs
diff --git a/src/Kestrel.Transport.Abstractions/Internal/TransportConnection.cs b/src/Servers/Kestrel/Transport.Abstractions/src/Internal/TransportConnection.cs
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/Internal/TransportConnection.cs
rename to src/Servers/Kestrel/Transport.Abstractions/src/Internal/TransportConnection.cs
diff --git a/src/Kestrel.Transport.Abstractions/Kestrel.Transport.Abstractions.csproj b/src/Servers/Kestrel/Transport.Abstractions/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj
similarity index 64%
rename from src/Kestrel.Transport.Abstractions/Kestrel.Transport.Abstractions.csproj
rename to src/Servers/Kestrel/Transport.Abstractions/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj
index 3dc81350fb0e455735aa86543acae9cf482977ee..fe131c9dd62532e2864c09006ca38ccd264d4658 100644
--- a/src/Kestrel.Transport.Abstractions/Kestrel.Transport.Abstractions.csproj
+++ b/src/Servers/Kestrel/Transport.Abstractions/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj
@@ -1,8 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions</RootNamespace>
     <Description>Transport abstractions for the ASP.NET Core Kestrel cross-platform web server.</Description>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
@@ -13,11 +11,11 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <Compile Include="..\shared\ThrowHelper.cs" />
+    <Compile Include="$(KestrelSharedSourceRoot)src\ThrowHelper.cs" />
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\Connections.Abstractions\Connections.Abstractions.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Connections.Abstractions" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Kestrel.Transport.Abstractions/baseline.netcore.json b/src/Servers/Kestrel/Transport.Abstractions/src/baseline.netcore.json
similarity index 100%
rename from src/Kestrel.Transport.Abstractions/baseline.netcore.json
rename to src/Servers/Kestrel/Transport.Abstractions/src/baseline.netcore.json
diff --git a/src/Kestrel.Transport.Libuv/Internal/IAsyncDisposable.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/IAsyncDisposable.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/IAsyncDisposable.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/IAsyncDisposable.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/ILibuvTrace.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ILibuvTrace.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/ILibuvTrace.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/ILibuvTrace.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvAwaitable.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvAwaitable.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvAwaitable.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvAwaitable.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvConnection.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnection.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvConnection.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnection.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvConstants.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConstants.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvConstants.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConstants.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvOutputConsumer.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvOutputConsumer.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvOutputConsumer.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvOutputConsumer.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvThread.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvThread.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvThread.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvThread.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvTrace.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTrace.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvTrace.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTrace.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvTransport.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTransport.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvTransport.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTransport.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvTransportContext.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTransportContext.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvTransportContext.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTransportContext.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvTransportFactory.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTransportFactory.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/LibuvTransportFactory.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTransportFactory.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Listener.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Listener.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Listener.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Listener.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/ListenerContext.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerContext.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/ListenerContext.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerContext.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/ListenerPrimary.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerPrimary.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/ListenerPrimary.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerPrimary.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/ListenerSecondary.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerSecondary.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/ListenerSecondary.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerSecondary.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/LibuvFunctions.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/LibuvFunctions.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/LibuvFunctions.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/LibuvFunctions.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/PlatformApis.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/PlatformApis.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/PlatformApis.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/PlatformApis.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/SockAddr.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/SockAddr.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/SockAddr.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/SockAddr.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvAsyncHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvAsyncHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvAsyncHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvAsyncHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvConnectRequest.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvConnectRequest.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvConnectRequest.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvConnectRequest.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvException.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvException.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvException.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvException.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvLoopHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvLoopHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvLoopHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvLoopHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvMemory.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvMemory.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvMemory.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvMemory.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvPipeHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvPipeHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvPipeHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvPipeHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvRequest.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvRequest.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvRequest.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvRequest.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvStreamHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvStreamHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvStreamHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvStreamHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvTcpHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvTcpHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvTcpHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvTcpHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvTimerHandle.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvTimerHandle.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvTimerHandle.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvTimerHandle.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvWriteReq.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvWriteReq.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/Networking/UvWriteReq.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/Networking/UvWriteReq.cs
diff --git a/src/Kestrel.Transport.Libuv/Internal/WriteReqPool.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/WriteReqPool.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/Internal/WriteReqPool.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/Internal/WriteReqPool.cs
diff --git a/src/Kestrel.Transport.Libuv/LibuvTransportOptions.cs b/src/Servers/Kestrel/Transport.Libuv/src/LibuvTransportOptions.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/LibuvTransportOptions.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/LibuvTransportOptions.cs
diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj b/src/Servers/Kestrel/Transport.Libuv/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..001e97cdb6b468221e4ca46ab853de7be10c03dd
--- /dev/null
+++ b/src/Servers/Kestrel/Transport.Libuv/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>Libuv transport for the ASP.NET Core Kestrel cross-platform web server.</Description>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore;kestrel</PackageTags>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <NoWarn>CS1591;$(NoWarn)</NoWarn>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Libuv" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+  </ItemGroup>
+
+</Project>
diff --git a/src/Kestrel.Transport.Libuv/WebHostBuilderLibuvExtensions.cs b/src/Servers/Kestrel/Transport.Libuv/src/WebHostBuilderLibuvExtensions.cs
similarity index 100%
rename from src/Kestrel.Transport.Libuv/WebHostBuilderLibuvExtensions.cs
rename to src/Servers/Kestrel/Transport.Libuv/src/WebHostBuilderLibuvExtensions.cs
diff --git a/src/Kestrel.Transport.Libuv/baseline.netcore.json b/src/Servers/Kestrel/Transport.Libuv/src/baseline.netcore.json
similarity index 100%
rename from src/Kestrel.Transport.Libuv/baseline.netcore.json
rename to src/Servers/Kestrel/Transport.Libuv/src/baseline.netcore.json
diff --git a/src/Kestrel.Transport.Libuv/breakingchanges.netcore.json b/src/Servers/Kestrel/Transport.Libuv/src/breakingchanges.netcore.json
similarity index 100%
rename from src/Kestrel.Transport.Libuv/breakingchanges.netcore.json
rename to src/Servers/Kestrel/Transport.Libuv/src/breakingchanges.netcore.json
diff --git a/test/Kestrel.Transport.Libuv.Tests/LibuvConnectionTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/LibuvConnectionTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/LibuvConnectionTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/LibuvConnectionTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/LibuvOutputConsumerTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/LibuvOutputConsumerTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/LibuvOutputConsumerTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/LibuvOutputConsumerTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/LibuvThreadTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/LibuvThreadTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/LibuvThreadTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/LibuvThreadTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/LibuvTransportFactoryTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/LibuvTransportFactoryTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/LibuvTransportFactoryTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/LibuvTransportFactoryTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/LibuvTransportOptionsTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/LibuvTransportOptionsTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/LibuvTransportOptionsTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/LibuvTransportOptionsTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/LibuvTransportTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/LibuvTransportTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/LibuvTransportTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/LibuvTransportTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/ListenerPrimaryTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/ListenerPrimaryTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/ListenerPrimaryTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/ListenerPrimaryTests.cs
diff --git a/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj b/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..4aa1f389e4cdac5b4975f17c8d5f84211010c79d
--- /dev/null
+++ b/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <ServerGarbageCollection>true</ServerGarbageCollection>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(KestrelSharedSourceRoot)test\**\*.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+  </ItemGroup>
+
+</Project>
diff --git a/test/Kestrel.Transport.Libuv.Tests/MultipleLoopTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/MultipleLoopTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/MultipleLoopTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/MultipleLoopTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/NetworkingTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/NetworkingTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/NetworkingTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/NetworkingTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/TestHelpers/MockConnectionDispatcher.cs b/src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/MockConnectionDispatcher.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/TestHelpers/MockConnectionDispatcher.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/MockConnectionDispatcher.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/TestHelpers/MockLibuv.cs b/src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/MockLibuv.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/TestHelpers/MockLibuv.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/MockLibuv.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/TestHelpers/MockSocket.cs b/src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/MockSocket.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/TestHelpers/MockSocket.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/MockSocket.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/TestHelpers/TestLibuvTransportContext.cs b/src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/TestLibuvTransportContext.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/TestHelpers/TestLibuvTransportContext.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/TestHelpers/TestLibuvTransportContext.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/UvStreamHandleTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/UvStreamHandleTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/UvStreamHandleTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/UvStreamHandleTests.cs
diff --git a/test/Kestrel.Transport.Libuv.Tests/UvTimerHandleTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/UvTimerHandleTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.Tests/UvTimerHandleTests.cs
rename to src/Servers/Kestrel/Transport.Libuv/test/UvTimerHandleTests.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/BufferExtensions.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/BufferExtensions.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/BufferExtensions.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/BufferExtensions.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/IOQueue.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/IOQueue.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/IOQueue.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/IOQueue.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/ISocketsTrace.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/ISocketsTrace.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/ISocketsTrace.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/ISocketsTrace.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/SocketAwaitable.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketAwaitable.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/SocketAwaitable.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketAwaitable.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/SocketConnection.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConnection.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/SocketConnection.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConnection.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/SocketReceiver.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketReceiver.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/SocketReceiver.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketReceiver.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/SocketSender.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketSender.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/SocketSender.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketSender.cs
diff --git a/src/Kestrel.Transport.Sockets/Internal/SocketsTrace.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketsTrace.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Internal/SocketsTrace.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketsTrace.cs
diff --git a/src/Kestrel.Transport.Sockets/Kestrel.Transport.Sockets.csproj b/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
similarity index 52%
rename from src/Kestrel.Transport.Sockets/Kestrel.Transport.Sockets.csproj
rename to src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
index 8af8305852277f6aa4bfb10fbc720d1c47ace575..82dde8daa8643008eb4f77dd0d6a6ada58d1c3a6 100644
--- a/src/Kestrel.Transport.Sockets/Kestrel.Transport.Sockets.csproj
+++ b/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj
@@ -1,8 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets</RootNamespace>
     <Description>Managed socket transport for the ASP.NET Core Kestrel cross-platform web server.</Description>
     <TargetFrameworks>netstandard2.0;netcoreapp2.1</TargetFrameworks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
@@ -12,12 +10,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Kestrel.Transport.Abstractions\Kestrel.Transport.Abstractions.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/Kestrel.Transport.Sockets/Properties/SocketsStrings.Designer.cs b/src/Servers/Kestrel/Transport.Sockets/src/Properties/SocketsStrings.Designer.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/Properties/SocketsStrings.Designer.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/Properties/SocketsStrings.Designer.cs
diff --git a/src/Kestrel.Transport.Sockets/SocketTransport.cs b/src/Servers/Kestrel/Transport.Sockets/src/SocketTransport.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/SocketTransport.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/SocketTransport.cs
diff --git a/src/Kestrel.Transport.Sockets/SocketTransportFactory.cs b/src/Servers/Kestrel/Transport.Sockets/src/SocketTransportFactory.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/SocketTransportFactory.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/SocketTransportFactory.cs
diff --git a/src/Kestrel.Transport.Sockets/SocketTransportOptions.cs b/src/Servers/Kestrel/Transport.Sockets/src/SocketTransportOptions.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/SocketTransportOptions.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/SocketTransportOptions.cs
diff --git a/src/Kestrel.Transport.Sockets/SocketsStrings.resx b/src/Servers/Kestrel/Transport.Sockets/src/SocketsStrings.resx
similarity index 100%
rename from src/Kestrel.Transport.Sockets/SocketsStrings.resx
rename to src/Servers/Kestrel/Transport.Sockets/src/SocketsStrings.resx
diff --git a/src/Kestrel.Transport.Sockets/WebHostBuilderSocketExtensions.cs b/src/Servers/Kestrel/Transport.Sockets/src/WebHostBuilderSocketExtensions.cs
similarity index 100%
rename from src/Kestrel.Transport.Sockets/WebHostBuilderSocketExtensions.cs
rename to src/Servers/Kestrel/Transport.Sockets/src/WebHostBuilderSocketExtensions.cs
diff --git a/src/Kestrel.Transport.Sockets/baseline.netcore.json b/src/Servers/Kestrel/Transport.Sockets/src/baseline.netcore.json
similarity index 100%
rename from src/Kestrel.Transport.Sockets/baseline.netcore.json
rename to src/Servers/Kestrel/Transport.Sockets/src/baseline.netcore.json
diff --git a/benchmarks/Kestrel.Performance/AsciiBytesToStringBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/AsciiBytesToStringBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/AsciiBytesToStringBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/AsciiBytesToStringBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/AssemblyInfo.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/AssemblyInfo.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/AssemblyInfo.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/AssemblyInfo.cs
diff --git a/benchmarks/Kestrel.Performance/DotSegmentRemovalBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/DotSegmentRemovalBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/DotSegmentRemovalBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/DotSegmentRemovalBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/ErrorUtilities.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/ErrorUtilities.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/ErrorUtilities.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/ErrorUtilities.cs
diff --git a/benchmarks/Kestrel.Performance/Http1ConnectionBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/Http1ConnectionBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/Http1ConnectionBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/Http1ConnectionBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/Http1ConnectionParsingOverheadBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/Http1ConnectionParsingOverheadBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/Http1ConnectionParsingOverheadBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/Http1ConnectionParsingOverheadBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/Http1WritingBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/Http1WritingBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/Http1WritingBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/Http1WritingBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/HttpParserBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/HttpParserBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/HttpParserBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/HttpParserBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/HttpProtocolFeatureCollection.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/HttpProtocolFeatureCollection.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/HttpProtocolFeatureCollection.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/HttpProtocolFeatureCollection.cs
diff --git a/benchmarks/Kestrel.Performance/InMemoryTransportBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/InMemoryTransportBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/InMemoryTransportBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/InMemoryTransportBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/KnownStringsBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/KnownStringsBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/KnownStringsBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/KnownStringsBenchmark.cs
diff --git a/src/Servers/Kestrel/perf/Kestrel.Performance/Microsoft.AspNetCore.Server.Kestrel.Performance.csproj b/src/Servers/Kestrel/perf/Kestrel.Performance/Microsoft.AspNetCore.Server.Kestrel.Performance.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..1998485c20477d964334370efd0880a11f84dbae
--- /dev/null
+++ b/src/Servers/Kestrel/perf/Kestrel.Performance/Microsoft.AspNetCore.Server.Kestrel.Performance.csproj
@@ -0,0 +1,27 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <OutputType>Exe</OutputType>
+    <ServerGarbageCollection>true</ServerGarbageCollection>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(KestrelSharedSourceRoot)test\TestApplicationErrorLogger.cs" />
+    <Compile Include="$(KestrelSharedSourceRoot)test\TestHttp1Connection.cs" />
+    <Compile Include="$(KestrelSharedSourceRoot)test\TestKestrelTrace.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="BenchmarkDotNet" />
+    <Reference Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" PrivateAssets="All" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+  </ItemGroup>
+
+</Project>
diff --git a/benchmarks/Kestrel.Performance/Mocks/MockTimeoutControl.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/Mocks/MockTimeoutControl.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/Mocks/MockTimeoutControl.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/Mocks/MockTimeoutControl.cs
diff --git a/benchmarks/Kestrel.Performance/Mocks/MockTrace.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/Mocks/MockTrace.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/Mocks/MockTrace.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/Mocks/MockTrace.cs
diff --git a/benchmarks/Kestrel.Performance/Mocks/NullParser.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/Mocks/NullParser.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/Mocks/NullParser.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/Mocks/NullParser.cs
diff --git a/benchmarks/Kestrel.Performance/PipeThroughputBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/PipeThroughputBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/PipeThroughputBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/PipeThroughputBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/README.md b/src/Servers/Kestrel/perf/Kestrel.Performance/README.md
similarity index 100%
rename from benchmarks/Kestrel.Performance/README.md
rename to src/Servers/Kestrel/perf/Kestrel.Performance/README.md
diff --git a/benchmarks/Kestrel.Performance/RequestParsingBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/RequestParsingBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/RequestParsingBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/RequestParsingBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/RequestParsingData.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/RequestParsingData.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/RequestParsingData.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/RequestParsingData.cs
diff --git a/benchmarks/Kestrel.Performance/ResponseHeaderCollectionBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/ResponseHeaderCollectionBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/ResponseHeaderCollectionBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/ResponseHeaderCollectionBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/ResponseHeadersWritingBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/ResponseHeadersWritingBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/ResponseHeadersWritingBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/ResponseHeadersWritingBenchmark.cs
diff --git a/benchmarks/Kestrel.Performance/StringUtilitiesBenchmark.cs b/src/Servers/Kestrel/perf/Kestrel.Performance/StringUtilitiesBenchmark.cs
similarity index 100%
rename from benchmarks/Kestrel.Performance/StringUtilitiesBenchmark.cs
rename to src/Servers/Kestrel/perf/Kestrel.Performance/StringUtilitiesBenchmark.cs
diff --git a/benchmarkapps/PlatformBenchmarks/AsciiString.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/AsciiString.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/AsciiString.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/AsciiString.cs
diff --git a/benchmarkapps/PlatformBenchmarks/BenchmarkApplication.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/BenchmarkApplication.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/BenchmarkApplication.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/BenchmarkApplication.cs
diff --git a/benchmarkapps/PlatformBenchmarks/BenchmarkConfigurationHelpers.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/BenchmarkConfigurationHelpers.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/BenchmarkConfigurationHelpers.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/BenchmarkConfigurationHelpers.cs
diff --git a/benchmarkapps/PlatformBenchmarks/DateHeader.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/DateHeader.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/DateHeader.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/DateHeader.cs
diff --git a/benchmarkapps/PlatformBenchmarks/HttpApplication.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/HttpApplication.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/HttpApplication.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/HttpApplication.cs
diff --git a/benchmarkapps/PlatformBenchmarks/PlatformBenchmarks.csproj b/src/Servers/Kestrel/perf/PlatformBenchmarks/PlatformBenchmarks.csproj
similarity index 52%
rename from benchmarkapps/PlatformBenchmarks/PlatformBenchmarks.csproj
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/PlatformBenchmarks.csproj
index 4d4126c6885232ff1633f069be83cf36b550480f..faeef6ecb24a20b1aa5026c08a62ddb3cf9db0fa 100644
--- a/benchmarkapps/PlatformBenchmarks/PlatformBenchmarks.csproj
+++ b/src/Servers/Kestrel/perf/PlatformBenchmarks/PlatformBenchmarks.csproj
@@ -5,22 +5,22 @@
     <OutputType>Exe</OutputType>
     <LangVersion>latest</LangVersion>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <IsTestAssetProject>true</IsTestAssetProject>
   </PropertyGroup>
-  
+
   <ItemGroup>
-    <PackageReference Include="Utf8Json" Version="$(Utf8JsonPackageVersion)" />
+    <Reference Include="Utf8Json" />
   </ItemGroup>
-  
+
   <!-- These references are used when running locally -->
   <ItemGroup Condition="'$(BenchmarksTargetFramework)' == ''">
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj" />
-
-    <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+    <Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
   </ItemGroup>
 
   <!-- These references are used when running on the Benchmarks Server -->
   <ItemGroup Condition="'$(BenchmarksTargetFramework)' != ''">
-    <PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.All" />
   </ItemGroup>
 </Project>
diff --git a/benchmarkapps/PlatformBenchmarks/Program.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/Program.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/Program.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/Program.cs
diff --git a/benchmarkapps/PlatformBenchmarks/Startup.cs b/src/Servers/Kestrel/perf/PlatformBenchmarks/Startup.cs
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/Startup.cs
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/Startup.cs
diff --git a/benchmarkapps/PlatformBenchmarks/benchmarks.json.json b/src/Servers/Kestrel/perf/PlatformBenchmarks/benchmarks.json.json
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/benchmarks.json.json
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/benchmarks.json.json
diff --git a/benchmarkapps/PlatformBenchmarks/benchmarks.plaintext.json b/src/Servers/Kestrel/perf/PlatformBenchmarks/benchmarks.plaintext.json
similarity index 100%
rename from benchmarkapps/PlatformBenchmarks/benchmarks.plaintext.json
rename to src/Servers/Kestrel/perf/PlatformBenchmarks/benchmarks.plaintext.json
diff --git a/samples/Http2SampleApp/Dockerfile b/src/Servers/Kestrel/samples/Http2SampleApp/Dockerfile
similarity index 100%
rename from samples/Http2SampleApp/Dockerfile
rename to src/Servers/Kestrel/samples/Http2SampleApp/Dockerfile
diff --git a/samples/Http2SampleApp/Http2SampleApp.csproj b/src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj
similarity index 59%
rename from samples/Http2SampleApp/Http2SampleApp.csproj
rename to src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj
index cd660a6c80eab5d26cae4c450baa51fae7f0516a..08078fe3cf4fe1d037751d89e5905fdcc59de248 100644
--- a/samples/Http2SampleApp/Http2SampleApp.csproj
+++ b/src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj
@@ -1,4 +1,4 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
+<Project Sdk="Microsoft.NET.Sdk.Web">
 
   <PropertyGroup>
     <TargetFrameworks>netcoreapp2.1</TargetFrameworks>
@@ -7,11 +7,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/samples/Http2SampleApp/Program.cs b/src/Servers/Kestrel/samples/Http2SampleApp/Program.cs
similarity index 100%
rename from samples/Http2SampleApp/Program.cs
rename to src/Servers/Kestrel/samples/Http2SampleApp/Program.cs
diff --git a/samples/Http2SampleApp/Startup.cs b/src/Servers/Kestrel/samples/Http2SampleApp/Startup.cs
similarity index 100%
rename from samples/Http2SampleApp/Startup.cs
rename to src/Servers/Kestrel/samples/Http2SampleApp/Startup.cs
diff --git a/samples/Http2SampleApp/scripts/build-docker.ps1 b/src/Servers/Kestrel/samples/Http2SampleApp/scripts/build-docker.ps1
similarity index 100%
rename from samples/Http2SampleApp/scripts/build-docker.ps1
rename to src/Servers/Kestrel/samples/Http2SampleApp/scripts/build-docker.ps1
diff --git a/samples/Http2SampleApp/scripts/build-docker.sh b/src/Servers/Kestrel/samples/Http2SampleApp/scripts/build-docker.sh
old mode 100755
new mode 100644
similarity index 100%
rename from samples/Http2SampleApp/scripts/build-docker.sh
rename to src/Servers/Kestrel/samples/Http2SampleApp/scripts/build-docker.sh
diff --git a/samples/Http2SampleApp/scripts/run-docker.ps1 b/src/Servers/Kestrel/samples/Http2SampleApp/scripts/run-docker.ps1
similarity index 100%
rename from samples/Http2SampleApp/scripts/run-docker.ps1
rename to src/Servers/Kestrel/samples/Http2SampleApp/scripts/run-docker.ps1
diff --git a/samples/Http2SampleApp/scripts/run-docker.sh b/src/Servers/Kestrel/samples/Http2SampleApp/scripts/run-docker.sh
old mode 100755
new mode 100644
similarity index 100%
rename from samples/Http2SampleApp/scripts/run-docker.sh
rename to src/Servers/Kestrel/samples/Http2SampleApp/scripts/run-docker.sh
diff --git a/samples/Http2SampleApp/testCert.pfx b/src/Servers/Kestrel/samples/Http2SampleApp/testCert.pfx
similarity index 100%
rename from samples/Http2SampleApp/testCert.pfx
rename to src/Servers/Kestrel/samples/Http2SampleApp/testCert.pfx
diff --git a/samples/LargeResponseApp/LargeResponseApp.csproj b/src/Servers/Kestrel/samples/LargeResponseApp/LargeResponseApp.csproj
similarity index 80%
rename from samples/LargeResponseApp/LargeResponseApp.csproj
rename to src/Servers/Kestrel/samples/LargeResponseApp/LargeResponseApp.csproj
index 13fab4a63ee3ef51a0aa5060eae226419fe3e66a..16d7aa18d1ae69566853e5de31d7fba636b29c61 100644
--- a/samples/LargeResponseApp/LargeResponseApp.csproj
+++ b/src/Servers/Kestrel/samples/LargeResponseApp/LargeResponseApp.csproj
@@ -7,7 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
   </ItemGroup>
 
 </Project>
diff --git a/samples/LargeResponseApp/Startup.cs b/src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs
similarity index 100%
rename from samples/LargeResponseApp/Startup.cs
rename to src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs
diff --git a/samples/PlaintextApp/PlaintextApp.csproj b/src/Servers/Kestrel/samples/PlaintextApp/PlaintextApp.csproj
similarity index 80%
rename from samples/PlaintextApp/PlaintextApp.csproj
rename to src/Servers/Kestrel/samples/PlaintextApp/PlaintextApp.csproj
index 238983e4f8f2ff9d91754cf94b308effa22a190e..f2c0c8a82024666ade23cd3c25a5f8fd01eae81a 100644
--- a/samples/PlaintextApp/PlaintextApp.csproj
+++ b/src/Servers/Kestrel/samples/PlaintextApp/PlaintextApp.csproj
@@ -7,7 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
   </ItemGroup>
 
 </Project>
diff --git a/samples/PlaintextApp/Startup.cs b/src/Servers/Kestrel/samples/PlaintextApp/Startup.cs
similarity index 100%
rename from samples/PlaintextApp/Startup.cs
rename to src/Servers/Kestrel/samples/PlaintextApp/Startup.cs
diff --git a/samples/SampleApp/SampleApp.csproj b/src/Servers/Kestrel/samples/SampleApp/SampleApp.csproj
similarity index 61%
rename from samples/SampleApp/SampleApp.csproj
rename to src/Servers/Kestrel/samples/SampleApp/SampleApp.csproj
index 036867ebc12f10e1f9315f810eff3ffecd0150a1..fff5a6c3bd54e7123a74a1c2cfd90b08c4ea3d2a 100644
--- a/samples/SampleApp/SampleApp.csproj
+++ b/src/Servers/Kestrel/samples/SampleApp/SampleApp.csproj
@@ -7,14 +7,11 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Https\Kestrel.Https.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Configuration.Json" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/samples/SampleApp/Startup.cs b/src/Servers/Kestrel/samples/SampleApp/Startup.cs
similarity index 100%
rename from samples/SampleApp/Startup.cs
rename to src/Servers/Kestrel/samples/SampleApp/Startup.cs
diff --git a/samples/SampleApp/appsettings.Development.json b/src/Servers/Kestrel/samples/SampleApp/appsettings.Development.json
similarity index 100%
rename from samples/SampleApp/appsettings.Development.json
rename to src/Servers/Kestrel/samples/SampleApp/appsettings.Development.json
diff --git a/samples/SampleApp/appsettings.Production.json b/src/Servers/Kestrel/samples/SampleApp/appsettings.Production.json
similarity index 100%
rename from samples/SampleApp/appsettings.Production.json
rename to src/Servers/Kestrel/samples/SampleApp/appsettings.Production.json
diff --git a/samples/SampleApp/appsettings.json b/src/Servers/Kestrel/samples/SampleApp/appsettings.json
similarity index 100%
rename from samples/SampleApp/appsettings.json
rename to src/Servers/Kestrel/samples/SampleApp/appsettings.json
diff --git a/samples/SampleApp/testCert.pfx b/src/Servers/Kestrel/samples/SampleApp/testCert.pfx
similarity index 100%
rename from samples/SampleApp/testCert.pfx
rename to src/Servers/Kestrel/samples/SampleApp/testCert.pfx
diff --git a/samples/SystemdTestApp/Startup.cs b/src/Servers/Kestrel/samples/SystemdTestApp/Startup.cs
similarity index 100%
rename from samples/SystemdTestApp/Startup.cs
rename to src/Servers/Kestrel/samples/SystemdTestApp/Startup.cs
diff --git a/samples/SystemdTestApp/SystemdTestApp.csproj b/src/Servers/Kestrel/samples/SystemdTestApp/SystemdTestApp.csproj
similarity index 57%
rename from samples/SystemdTestApp/SystemdTestApp.csproj
rename to src/Servers/Kestrel/samples/SystemdTestApp/SystemdTestApp.csproj
index 28c159a38e8d0e60c55688227add77f9203c49ac..a9bd0733b258ee25704b53cc7f1cb57e7ec6b5e1 100644
--- a/samples/SystemdTestApp/SystemdTestApp.csproj
+++ b/src/Servers/Kestrel/samples/SystemdTestApp/SystemdTestApp.csproj
@@ -7,12 +7,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/samples/SystemdTestApp/testCert.pfx b/src/Servers/Kestrel/samples/SystemdTestApp/testCert.pfx
similarity index 100%
rename from samples/SystemdTestApp/testCert.pfx
rename to src/Servers/Kestrel/samples/SystemdTestApp/testCert.pfx
diff --git a/src/shared/ThrowHelper.cs b/src/Servers/Kestrel/shared/src/ThrowHelper.cs
similarity index 100%
rename from src/shared/ThrowHelper.cs
rename to src/Servers/Kestrel/shared/src/ThrowHelper.cs
diff --git a/test/shared/DisposableStack.cs b/src/Servers/Kestrel/shared/test/DisposableStack.cs
similarity index 100%
rename from test/shared/DisposableStack.cs
rename to src/Servers/Kestrel/shared/test/DisposableStack.cs
diff --git a/test/shared/DummyApplication.cs b/src/Servers/Kestrel/shared/test/DummyApplication.cs
similarity index 100%
rename from test/shared/DummyApplication.cs
rename to src/Servers/Kestrel/shared/test/DummyApplication.cs
diff --git a/test/shared/EventRaisingResourceCounter.cs b/src/Servers/Kestrel/shared/test/EventRaisingResourceCounter.cs
similarity index 100%
rename from test/shared/EventRaisingResourceCounter.cs
rename to src/Servers/Kestrel/shared/test/EventRaisingResourceCounter.cs
diff --git a/test/shared/HttpParsingData.cs b/src/Servers/Kestrel/shared/test/HttpParsingData.cs
similarity index 100%
rename from test/shared/HttpParsingData.cs
rename to src/Servers/Kestrel/shared/test/HttpParsingData.cs
diff --git a/test/shared/KestrelTestLoggerProvider.cs b/src/Servers/Kestrel/shared/test/KestrelTestLoggerProvider.cs
similarity index 100%
rename from test/shared/KestrelTestLoggerProvider.cs
rename to src/Servers/Kestrel/shared/test/KestrelTestLoggerProvider.cs
diff --git a/test/shared/LifetimeNotImplemented.cs b/src/Servers/Kestrel/shared/test/LifetimeNotImplemented.cs
similarity index 100%
rename from test/shared/LifetimeNotImplemented.cs
rename to src/Servers/Kestrel/shared/test/LifetimeNotImplemented.cs
diff --git a/test/shared/MockLogger.cs b/src/Servers/Kestrel/shared/test/MockLogger.cs
similarity index 100%
rename from test/shared/MockLogger.cs
rename to src/Servers/Kestrel/shared/test/MockLogger.cs
diff --git a/test/shared/MockSystemClock.cs b/src/Servers/Kestrel/shared/test/MockSystemClock.cs
similarity index 100%
rename from test/shared/MockSystemClock.cs
rename to src/Servers/Kestrel/shared/test/MockSystemClock.cs
diff --git a/test/shared/PassThroughConnectionAdapter.cs b/src/Servers/Kestrel/shared/test/PassThroughConnectionAdapter.cs
similarity index 100%
rename from test/shared/PassThroughConnectionAdapter.cs
rename to src/Servers/Kestrel/shared/test/PassThroughConnectionAdapter.cs
diff --git a/test/shared/StringExtensions.cs b/src/Servers/Kestrel/shared/test/StringExtensions.cs
similarity index 100%
rename from test/shared/StringExtensions.cs
rename to src/Servers/Kestrel/shared/test/StringExtensions.cs
diff --git a/test/shared/TaskTimeoutExtensions.cs b/src/Servers/Kestrel/shared/test/TaskTimeoutExtensions.cs
similarity index 100%
rename from test/shared/TaskTimeoutExtensions.cs
rename to src/Servers/Kestrel/shared/test/TaskTimeoutExtensions.cs
diff --git a/test/shared/TestApp.cs b/src/Servers/Kestrel/shared/test/TestApp.cs
similarity index 100%
rename from test/shared/TestApp.cs
rename to src/Servers/Kestrel/shared/test/TestApp.cs
diff --git a/test/shared/TestApplicationErrorLogger.cs b/src/Servers/Kestrel/shared/test/TestApplicationErrorLogger.cs
similarity index 100%
rename from test/shared/TestApplicationErrorLogger.cs
rename to src/Servers/Kestrel/shared/test/TestApplicationErrorLogger.cs
diff --git a/test/shared/TestCertificates/aspnetdevcert.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/aspnetdevcert.pfx
similarity index 100%
rename from test/shared/TestCertificates/aspnetdevcert.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/aspnetdevcert.pfx
diff --git a/test/shared/TestCertificates/eku.client.ini b/src/Servers/Kestrel/shared/test/TestCertificates/eku.client.ini
similarity index 100%
rename from test/shared/TestCertificates/eku.client.ini
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.client.ini
diff --git a/test/shared/TestCertificates/eku.client.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/eku.client.pfx
similarity index 100%
rename from test/shared/TestCertificates/eku.client.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.client.pfx
diff --git a/test/shared/TestCertificates/eku.code_signing.ini b/src/Servers/Kestrel/shared/test/TestCertificates/eku.code_signing.ini
similarity index 100%
rename from test/shared/TestCertificates/eku.code_signing.ini
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.code_signing.ini
diff --git a/test/shared/TestCertificates/eku.code_signing.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/eku.code_signing.pfx
similarity index 100%
rename from test/shared/TestCertificates/eku.code_signing.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.code_signing.pfx
diff --git a/test/shared/TestCertificates/eku.multiple_usages.ini b/src/Servers/Kestrel/shared/test/TestCertificates/eku.multiple_usages.ini
similarity index 100%
rename from test/shared/TestCertificates/eku.multiple_usages.ini
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.multiple_usages.ini
diff --git a/test/shared/TestCertificates/eku.multiple_usages.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/eku.multiple_usages.pfx
similarity index 100%
rename from test/shared/TestCertificates/eku.multiple_usages.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.multiple_usages.pfx
diff --git a/test/shared/TestCertificates/eku.server.ini b/src/Servers/Kestrel/shared/test/TestCertificates/eku.server.ini
similarity index 100%
rename from test/shared/TestCertificates/eku.server.ini
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.server.ini
diff --git a/test/shared/TestCertificates/eku.server.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/eku.server.pfx
similarity index 100%
rename from test/shared/TestCertificates/eku.server.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/eku.server.pfx
diff --git a/test/shared/TestCertificates/make-test-certs.sh b/src/Servers/Kestrel/shared/test/TestCertificates/make-test-certs.sh
old mode 100755
new mode 100644
similarity index 100%
rename from test/shared/TestCertificates/make-test-certs.sh
rename to src/Servers/Kestrel/shared/test/TestCertificates/make-test-certs.sh
diff --git a/test/shared/TestCertificates/no_extensions.ini b/src/Servers/Kestrel/shared/test/TestCertificates/no_extensions.ini
similarity index 100%
rename from test/shared/TestCertificates/no_extensions.ini
rename to src/Servers/Kestrel/shared/test/TestCertificates/no_extensions.ini
diff --git a/test/shared/TestCertificates/no_extensions.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/no_extensions.pfx
similarity index 100%
rename from test/shared/TestCertificates/no_extensions.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/no_extensions.pfx
diff --git a/test/shared/TestCertificates/testCert.pfx b/src/Servers/Kestrel/shared/test/TestCertificates/testCert.pfx
similarity index 100%
rename from test/shared/TestCertificates/testCert.pfx
rename to src/Servers/Kestrel/shared/test/TestCertificates/testCert.pfx
diff --git a/test/shared/TestConnection.cs b/src/Servers/Kestrel/shared/test/TestConnection.cs
similarity index 100%
rename from test/shared/TestConnection.cs
rename to src/Servers/Kestrel/shared/test/TestConnection.cs
diff --git a/test/shared/TestConstants.cs b/src/Servers/Kestrel/shared/test/TestConstants.cs
similarity index 100%
rename from test/shared/TestConstants.cs
rename to src/Servers/Kestrel/shared/test/TestConstants.cs
diff --git a/test/shared/TestHttp1Connection.cs b/src/Servers/Kestrel/shared/test/TestHttp1Connection.cs
similarity index 100%
rename from test/shared/TestHttp1Connection.cs
rename to src/Servers/Kestrel/shared/test/TestHttp1Connection.cs
diff --git a/test/shared/TestKestrelTrace.cs b/src/Servers/Kestrel/shared/test/TestKestrelTrace.cs
similarity index 100%
rename from test/shared/TestKestrelTrace.cs
rename to src/Servers/Kestrel/shared/test/TestKestrelTrace.cs
diff --git a/test/shared/TestResources.cs b/src/Servers/Kestrel/shared/test/TestResources.cs
similarity index 100%
rename from test/shared/TestResources.cs
rename to src/Servers/Kestrel/shared/test/TestResources.cs
diff --git a/test/shared/TestServiceContext.cs b/src/Servers/Kestrel/shared/test/TestServiceContext.cs
similarity index 100%
rename from test/shared/TestServiceContext.cs
rename to src/Servers/Kestrel/shared/test/TestServiceContext.cs
diff --git a/test/Kestrel.FunctionalTests/AddressRegistrationTests.cs b/src/Servers/Kestrel/test/FunctionalTests/AddressRegistrationTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/AddressRegistrationTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/AddressRegistrationTests.cs
diff --git a/test/Kestrel.FunctionalTests/BadHttpRequestTests.cs b/src/Servers/Kestrel/test/FunctionalTests/BadHttpRequestTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/BadHttpRequestTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/BadHttpRequestTests.cs
diff --git a/test/Kestrel.FunctionalTests/CertificateLoaderTests.cs b/src/Servers/Kestrel/test/FunctionalTests/CertificateLoaderTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/CertificateLoaderTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/CertificateLoaderTests.cs
diff --git a/test/Kestrel.FunctionalTests/ChunkedRequestTests.cs b/src/Servers/Kestrel/test/FunctionalTests/ChunkedRequestTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/ChunkedRequestTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/ChunkedRequestTests.cs
diff --git a/test/Kestrel.FunctionalTests/ChunkedResponseTests.cs b/src/Servers/Kestrel/test/FunctionalTests/ChunkedResponseTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/ChunkedResponseTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/ChunkedResponseTests.cs
diff --git a/test/Kestrel.FunctionalTests/ConnectionAdapterTests.cs b/src/Servers/Kestrel/test/FunctionalTests/ConnectionAdapterTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/ConnectionAdapterTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/ConnectionAdapterTests.cs
diff --git a/test/Kestrel.FunctionalTests/ConnectionLimitTests.cs b/src/Servers/Kestrel/test/FunctionalTests/ConnectionLimitTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/ConnectionLimitTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/ConnectionLimitTests.cs
diff --git a/test/Kestrel.FunctionalTests/DefaultHeaderTests.cs b/src/Servers/Kestrel/test/FunctionalTests/DefaultHeaderTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/DefaultHeaderTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/DefaultHeaderTests.cs
diff --git a/test/Kestrel.FunctionalTests/EventSourceTests.cs b/src/Servers/Kestrel/test/FunctionalTests/EventSourceTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/EventSourceTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/EventSourceTests.cs
diff --git a/test/Kestrel.FunctionalTests/GeneratedCodeTests.cs b/src/Servers/Kestrel/test/FunctionalTests/GeneratedCodeTests.cs
similarity index 77%
rename from test/Kestrel.FunctionalTests/GeneratedCodeTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/GeneratedCodeTests.cs
index bcf34ccaf95244f7c51db3b28d638033106418fb..862890542f580b177145d193f57eb6c3dcfacaaf 100644
--- a/test/Kestrel.FunctionalTests/GeneratedCodeTests.cs
+++ b/src/Servers/Kestrel/test/FunctionalTests/GeneratedCodeTests.cs
@@ -3,6 +3,7 @@
 
 #if NETCOREAPP2_1
 using System.IO;
+using Microsoft.AspNetCore.Testing;
 using Xunit;
 
 namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
@@ -12,9 +13,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
         [Fact]
         public void GeneratedCodeIsUpToDate()
         {
-            const string httpHeadersGeneratedPath = "../../../../../src/Kestrel.Core/Internal/Http/HttpHeaders.Generated.cs";
-            const string httpProtocolGeneratedPath = "../../../../../src/Kestrel.Core/Internal/Http/HttpProtocol.Generated.cs";
-            const string httpUtilitiesGeneratedPath = "../../../../../src/Kestrel.Core/Internal/Infrastructure/HttpUtilities.Generated.cs";
+            var repositoryRoot = TestPathUtilities.GetSolutionRootDirectory("Microsoft.AspNetCore");
+
+            var httpHeadersGeneratedPath = Path.Combine(repositoryRoot, "src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.Generated.cs");
+            var httpProtocolGeneratedPath = Path.Combine(repositoryRoot, "src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.Generated.cs");
+            var httpUtilitiesGeneratedPath = Path.Combine(repositoryRoot, "src/Servers/Kestrel/Core/src/Internal/Infrastructure/HttpUtilities.Generated.cs");
 
             var testHttpHeadersGeneratedPath = Path.GetTempFileName();
             var testHttpProtocolGeneratedPath = Path.GetTempFileName();
diff --git a/test/Kestrel.FunctionalTests/HttpConnectionManagerTests.cs b/src/Servers/Kestrel/test/FunctionalTests/HttpConnectionManagerTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/HttpConnectionManagerTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/HttpConnectionManagerTests.cs
diff --git a/test/Kestrel.FunctionalTests/HttpProtocolSelectionTests.cs b/src/Servers/Kestrel/test/FunctionalTests/HttpProtocolSelectionTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/HttpProtocolSelectionTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/HttpProtocolSelectionTests.cs
diff --git a/test/Kestrel.FunctionalTests/HttpsConnectionAdapterOptionsTest.cs b/src/Servers/Kestrel/test/FunctionalTests/HttpsConnectionAdapterOptionsTest.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/HttpsConnectionAdapterOptionsTest.cs
rename to src/Servers/Kestrel/test/FunctionalTests/HttpsConnectionAdapterOptionsTest.cs
diff --git a/test/Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs b/src/Servers/Kestrel/test/FunctionalTests/HttpsConnectionAdapterTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/HttpsConnectionAdapterTests.cs
diff --git a/test/Kestrel.FunctionalTests/HttpsTests.cs b/src/Servers/Kestrel/test/FunctionalTests/HttpsTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/HttpsTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/HttpsTests.cs
diff --git a/test/Kestrel.FunctionalTests/KeepAliveTimeoutTests.cs b/src/Servers/Kestrel/test/FunctionalTests/KeepAliveTimeoutTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/KeepAliveTimeoutTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/KeepAliveTimeoutTests.cs
diff --git a/test/Kestrel.FunctionalTests/LoggingConnectionAdapterTests.cs b/src/Servers/Kestrel/test/FunctionalTests/LoggingConnectionAdapterTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/LoggingConnectionAdapterTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/LoggingConnectionAdapterTests.cs
diff --git a/test/Kestrel.FunctionalTests/MaxRequestBodySizeTests.cs b/src/Servers/Kestrel/test/FunctionalTests/MaxRequestBodySizeTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/MaxRequestBodySizeTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/MaxRequestBodySizeTests.cs
diff --git a/test/Kestrel.FunctionalTests/MaxRequestBufferSizeTests.cs b/src/Servers/Kestrel/test/FunctionalTests/MaxRequestBufferSizeTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/MaxRequestBufferSizeTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/MaxRequestBufferSizeTests.cs
diff --git a/test/Kestrel.FunctionalTests/MaxRequestLineSizeTests.cs b/src/Servers/Kestrel/test/FunctionalTests/MaxRequestLineSizeTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/MaxRequestLineSizeTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/MaxRequestLineSizeTests.cs
diff --git a/test/Kestrel.FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/test/FunctionalTests/Properties/AssemblyInfo.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/Properties/AssemblyInfo.cs
rename to src/Servers/Kestrel/test/FunctionalTests/Properties/AssemblyInfo.cs
diff --git a/test/Kestrel.FunctionalTests/RequestBodyTimeoutTests.cs b/src/Servers/Kestrel/test/FunctionalTests/RequestBodyTimeoutTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/RequestBodyTimeoutTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/RequestBodyTimeoutTests.cs
diff --git a/test/Kestrel.FunctionalTests/RequestHeaderLimitsTests.cs b/src/Servers/Kestrel/test/FunctionalTests/RequestHeaderLimitsTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/RequestHeaderLimitsTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/RequestHeaderLimitsTests.cs
diff --git a/test/Kestrel.FunctionalTests/RequestHeadersTimeoutTests.cs b/src/Servers/Kestrel/test/FunctionalTests/RequestHeadersTimeoutTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/RequestHeadersTimeoutTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/RequestHeadersTimeoutTests.cs
diff --git a/test/Kestrel.FunctionalTests/RequestTargetProcessingTests.cs b/src/Servers/Kestrel/test/FunctionalTests/RequestTargetProcessingTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/RequestTargetProcessingTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/RequestTargetProcessingTests.cs
diff --git a/test/Kestrel.FunctionalTests/RequestTests.cs b/src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/RequestTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs
diff --git a/test/Kestrel.FunctionalTests/ResponseTests.cs b/src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/ResponseTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs
diff --git a/test/Kestrel.FunctionalTests/TestHelpers/HostNameIsReachableAttribute.cs b/src/Servers/Kestrel/test/FunctionalTests/TestHelpers/HostNameIsReachableAttribute.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/TestHelpers/HostNameIsReachableAttribute.cs
rename to src/Servers/Kestrel/test/FunctionalTests/TestHelpers/HostNameIsReachableAttribute.cs
diff --git a/test/Kestrel.FunctionalTests/TestHelpers/IPv6ScopeIdPresentConditionAttribute.cs b/src/Servers/Kestrel/test/FunctionalTests/TestHelpers/IPv6ScopeIdPresentConditionAttribute.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/TestHelpers/IPv6ScopeIdPresentConditionAttribute.cs
rename to src/Servers/Kestrel/test/FunctionalTests/TestHelpers/IPv6ScopeIdPresentConditionAttribute.cs
diff --git a/test/Kestrel.FunctionalTests/TestHelpers/IPv6SupportedConditionAttribute.cs b/src/Servers/Kestrel/test/FunctionalTests/TestHelpers/IPv6SupportedConditionAttribute.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/TestHelpers/IPv6SupportedConditionAttribute.cs
rename to src/Servers/Kestrel/test/FunctionalTests/TestHelpers/IPv6SupportedConditionAttribute.cs
diff --git a/test/Kestrel.FunctionalTests/TestHelpers/IWebHostPortExtensions.cs b/src/Servers/Kestrel/test/FunctionalTests/TestHelpers/IWebHostPortExtensions.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/TestHelpers/IWebHostPortExtensions.cs
rename to src/Servers/Kestrel/test/FunctionalTests/TestHelpers/IWebHostPortExtensions.cs
diff --git a/test/Kestrel.FunctionalTests/TestHelpers/TestApplicationErrorLoggerLoggedTest.cs b/src/Servers/Kestrel/test/FunctionalTests/TestHelpers/TestApplicationErrorLoggerLoggedTest.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/TestHelpers/TestApplicationErrorLoggerLoggedTest.cs
rename to src/Servers/Kestrel/test/FunctionalTests/TestHelpers/TestApplicationErrorLoggerLoggedTest.cs
diff --git a/test/Kestrel.FunctionalTests/TestHelpers/TestServer.cs b/src/Servers/Kestrel/test/FunctionalTests/TestHelpers/TestServer.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/TestHelpers/TestServer.cs
rename to src/Servers/Kestrel/test/FunctionalTests/TestHelpers/TestServer.cs
diff --git a/test/Kestrel.FunctionalTests/UpgradeTests.cs b/src/Servers/Kestrel/test/FunctionalTests/UpgradeTests.cs
similarity index 100%
rename from test/Kestrel.FunctionalTests/UpgradeTests.cs
rename to src/Servers/Kestrel/test/FunctionalTests/UpgradeTests.cs
diff --git a/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj b/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..a0a9254fbf0e53587acd7355973a93d6e9ecac44
--- /dev/null
+++ b/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj
@@ -0,0 +1,30 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+    <DefineConstants Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(DefineConstants);MACOS</DefineConstants>
+    <ServerGarbageCollection>true</ServerGarbageCollection>
+    <!-- Put this project into its own test group to avoid running parallel with other test projects. Libuv does not play nice with other test assemblies. -->
+    <TestGroupName>Libuv.FunctionalTests</TestGroupName>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(KestrelSharedSourceRoot)test\**\*.cs" />
+    <Compile Include="..\FunctionalTests\**\*.cs" />
+    <Content Include="$(KestrelSharedSourceRoot)test\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">
+    <ProjectReference Include="..\..\tools\CodeGenerator\CodeGenerator.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Logging.Testing" />
+    <Reference Include="Newtonsoft.Json" />
+  </ItemGroup>
+
+</Project>
diff --git a/test/Kestrel.Transport.Libuv.FunctionalTests/ListenHandleTests.cs b/src/Servers/Kestrel/test/Libuv.FunctionalTests/ListenHandleTests.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.FunctionalTests/ListenHandleTests.cs
rename to src/Servers/Kestrel/test/Libuv.FunctionalTests/ListenHandleTests.cs
diff --git a/test/Kestrel.Transport.Libuv.FunctionalTests/TransportSelector.cs b/src/Servers/Kestrel/test/Libuv.FunctionalTests/TransportSelector.cs
similarity index 100%
rename from test/Kestrel.Transport.Libuv.FunctionalTests/TransportSelector.cs
rename to src/Servers/Kestrel/test/Libuv.FunctionalTests/TransportSelector.cs
diff --git a/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj b/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..052fd78659b4e0fc00b910a89f0724fb61fc69bd
--- /dev/null
+++ b/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj
@@ -0,0 +1,29 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+    <DefineConstants Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(DefineConstants);MACOS</DefineConstants>
+    <DefineConstants>$(DefineConstants);SOCKETS</DefineConstants>
+    <ServerGarbageCollection>true</ServerGarbageCollection>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="..\FunctionalTests\**\*.cs" />
+    <Compile Include="$(KestrelSharedSourceRoot)test\**\*.cs" />
+    <Content Include="$(KestrelSharedSourceRoot)test\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">
+    <ProjectReference Include="..\..\tools\CodeGenerator\CodeGenerator.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Logging.Testing" />
+    <Reference Include="Newtonsoft.Json" />
+  </ItemGroup>
+
+</Project>
diff --git a/test/Kestrel.Transport.Sockets.FunctionalTests/TransportSelector.cs b/src/Servers/Kestrel/test/Sockets.FunctionalTests/TransportSelector.cs
similarity index 100%
rename from test/Kestrel.Transport.Sockets.FunctionalTests/TransportSelector.cs
rename to src/Servers/Kestrel/test/Sockets.FunctionalTests/TransportSelector.cs
diff --git a/test/SystemdActivation/Dockerfile b/src/Servers/Kestrel/test/SystemdActivation/Dockerfile
similarity index 100%
rename from test/SystemdActivation/Dockerfile
rename to src/Servers/Kestrel/test/SystemdActivation/Dockerfile
diff --git a/test/SystemdActivation/docker-entrypoint.sh b/src/Servers/Kestrel/test/SystemdActivation/docker-entrypoint.sh
similarity index 100%
rename from test/SystemdActivation/docker-entrypoint.sh
rename to src/Servers/Kestrel/test/SystemdActivation/docker-entrypoint.sh
diff --git a/test/SystemdActivation/docker.sh b/src/Servers/Kestrel/test/SystemdActivation/docker.sh
similarity index 100%
rename from test/SystemdActivation/docker.sh
rename to src/Servers/Kestrel/test/SystemdActivation/docker.sh
diff --git a/tools/CodeGenerator/CodeGenerator.csproj b/src/Servers/Kestrel/tools/CodeGenerator/CodeGenerator.csproj
similarity index 58%
rename from tools/CodeGenerator/CodeGenerator.csproj
rename to src/Servers/Kestrel/tools/CodeGenerator/CodeGenerator.csproj
index c85676e21d21daf6bf6ca237ae8287941b81df35..3a209fea5b178e198566387f1d3435eeb7a1618b 100644
--- a/tools/CodeGenerator/CodeGenerator.csproj
+++ b/src/Servers/Kestrel/tools/CodeGenerator/CodeGenerator.csproj
@@ -5,16 +5,17 @@
     <OutputType>Exe</OutputType>
     <IsPackable>false</IsPackable>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <IsImplementationProject>false</IsImplementationProject>
   </PropertyGroup>
 
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="$(MicrosoftAspNetCoreHttpFeaturesPackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
   </ItemGroup>
 
   <PropertyGroup>
-    <StartWorkingDirectory>$(MSBuildThisFileDirectory)..\..\src\Kestrel.Core</StartWorkingDirectory>
+    <StartWorkingDirectory>$(MSBuildThisFileDirectory)..\..\Core\src</StartWorkingDirectory>
     <StartArguments>Internal/Http/HttpHeaders.Generated.cs Internal/Http/HttpProtocol.Generated.cs Internal/Infrastructure/HttpUtilities.Generated.cs</StartArguments>
   </PropertyGroup>
 
diff --git a/tools/CodeGenerator/HttpProtocolFeatureCollection.cs b/src/Servers/Kestrel/tools/CodeGenerator/HttpProtocolFeatureCollection.cs
similarity index 100%
rename from tools/CodeGenerator/HttpProtocolFeatureCollection.cs
rename to src/Servers/Kestrel/tools/CodeGenerator/HttpProtocolFeatureCollection.cs
diff --git a/tools/CodeGenerator/HttpUtilities/CombinationsWithoutRepetition.cs b/src/Servers/Kestrel/tools/CodeGenerator/HttpUtilities/CombinationsWithoutRepetition.cs
similarity index 100%
rename from tools/CodeGenerator/HttpUtilities/CombinationsWithoutRepetition.cs
rename to src/Servers/Kestrel/tools/CodeGenerator/HttpUtilities/CombinationsWithoutRepetition.cs
diff --git a/tools/CodeGenerator/HttpUtilities/HttpUtilities.cs b/src/Servers/Kestrel/tools/CodeGenerator/HttpUtilities/HttpUtilities.cs
similarity index 100%
rename from tools/CodeGenerator/HttpUtilities/HttpUtilities.cs
rename to src/Servers/Kestrel/tools/CodeGenerator/HttpUtilities/HttpUtilities.cs
diff --git a/tools/CodeGenerator/HttpUtilities/HttpUtilitiesGeneratorHelpers.cs b/src/Servers/Kestrel/tools/CodeGenerator/HttpUtilities/HttpUtilitiesGeneratorHelpers.cs
similarity index 100%
rename from tools/CodeGenerator/HttpUtilities/HttpUtilitiesGeneratorHelpers.cs
rename to src/Servers/Kestrel/tools/CodeGenerator/HttpUtilities/HttpUtilitiesGeneratorHelpers.cs
diff --git a/tools/CodeGenerator/KnownHeaders.cs b/src/Servers/Kestrel/tools/CodeGenerator/KnownHeaders.cs
similarity index 100%
rename from tools/CodeGenerator/KnownHeaders.cs
rename to src/Servers/Kestrel/tools/CodeGenerator/KnownHeaders.cs
diff --git a/tools/CodeGenerator/Program.cs b/src/Servers/Kestrel/tools/CodeGenerator/Program.cs
similarity index 100%
rename from tools/CodeGenerator/Program.cs
rename to src/Servers/Kestrel/tools/CodeGenerator/Program.cs
diff --git a/test/xunit.runner.json b/src/Servers/Kestrel/xunit.runner.json
similarity index 100%
rename from test/xunit.runner.json
rename to src/Servers/Kestrel/xunit.runner.json
diff --git a/shared/Microsoft.Extensions.Buffers.Testing.Sources/BufferSegment.cs b/src/Shared/Buffers.Testing/BufferSegment.cs
similarity index 100%
rename from shared/Microsoft.Extensions.Buffers.Testing.Sources/BufferSegment.cs
rename to src/Shared/Buffers.Testing/BufferSegment.cs
diff --git a/shared/Microsoft.Extensions.Buffers.Testing.Sources/CustomMemoryForTest.cs b/src/Shared/Buffers.Testing/CustomMemoryForTest.cs
similarity index 100%
rename from shared/Microsoft.Extensions.Buffers.Testing.Sources/CustomMemoryForTest.cs
rename to src/Shared/Buffers.Testing/CustomMemoryForTest.cs
diff --git a/shared/Microsoft.Extensions.Buffers.Testing.Sources/ReadOnlySequenceFactory.cs b/src/Shared/Buffers.Testing/ReadOnlySequenceFactory.cs
similarity index 100%
rename from shared/Microsoft.Extensions.Buffers.Testing.Sources/ReadOnlySequenceFactory.cs
rename to src/Shared/Buffers.Testing/ReadOnlySequenceFactory.cs
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
deleted file mode 100644
index 44033a6dc3a7b94f0cc9f19a6160025b8ba75129..0000000000000000000000000000000000000000
--- a/test/Directory.Build.props
+++ /dev/null
@@ -1,31 +0,0 @@
-<Project>
-  <Import Project="..\Directory.Build.props" />
-
-  <PropertyGroup>
-    <DeveloperBuildTestTfms>netcoreapp2.1</DeveloperBuildTestTfms>
-    <StandardTestTfms>$(DeveloperBuildTestTfms)</StandardTestTfms>
-    <StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' ">netcoreapp2.1</StandardTestTfms>
-    <StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' AND '$(OS)' == 'Windows_NT' ">$(StandardTestTfms);net461</StandardTestTfms>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <!--
-      Workaround for "Use executable flags in Microsoft.NET.Test.Sdk" (https://github.com/Microsoft/vstest/issues/792).
-      Remove when fixed.
-    -->
-    <HasRuntimeOutput>true</HasRuntimeOutput>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
-    <PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
-    <PackageReference Include="xunit.analyzers" Version="$(XunitAnalyzersPackageVersion)" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />
-    <PackageReference Include="xunit" Version="$(XunitPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <None Include="$(MSBuildThisFileDirectory)xunit.runner.json" Link="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-</Project>
diff --git a/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj b/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj
deleted file mode 100644
index 2074ed65267514d45319a0875640c4ea5f079f0f..0000000000000000000000000000000000000000
--- a/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Core.Tests</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Core.Tests</RootNamespace>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\shared\**\*.cs" />
-    <Compile Include="..\..\shared\Microsoft.Extensions.Buffers.Testing.Sources\*.cs" />
-    <Content Include="..\shared\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel.Core\Kestrel.Core.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Http" Version="$(MicrosoftAspNetCoreHttpPackageVersion)" />
-    <PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
-    <PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/test/Kestrel.Tests/Kestrel.Tests.csproj b/test/Kestrel.Tests/Kestrel.Tests.csproj
deleted file mode 100644
index d383f39603f110373ff96d127ebf7985f0340841..0000000000000000000000000000000000000000
--- a/test/Kestrel.Tests/Kestrel.Tests.csproj
+++ /dev/null
@@ -1,20 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Tests</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Tests</RootNamespace>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\shared\**\*.cs" />
-    <Content Include="..\shared\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj" />
-    <PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj b/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj
deleted file mode 100644
index 4e48a8d6665e4d1e739d64c8e1e3323a551658c1..0000000000000000000000000000000000000000
--- a/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj
+++ /dev/null
@@ -1,36 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Libuv.FunctionalTests</AssemblyName>
-    <RootNamespace>Libuv.FunctionalTests</RootNamespace>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-    <DefineConstants Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(DefineConstants);MACOS</DefineConstants>
-    <ServerGarbageCollection>true</ServerGarbageCollection>
-    <!-- Put this project into its own test group to avoid running parallel with other test projects. Libuv does not play nice with other test assemblies. -->
-    <TestGroupName>Libuv.FunctionalTests</TestGroupName>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\shared\**\*.cs" />
-    <Compile Include="..\Kestrel.FunctionalTests\**\*.cs" />
-    <Content Include="..\shared\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup Condition="'$(TargetFramework)' != 'net461'">
-    <ProjectReference Include="..\..\tools\CodeGenerator\CodeGenerator.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Https\Kestrel.Https.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj b/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj
deleted file mode 100644
index ef4f1d774258af19301636a50eee2f396ce281b6..0000000000000000000000000000000000000000
--- a/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj
+++ /dev/null
@@ -1,26 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests</AssemblyName>
-    <RootNamespace>Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests</RootNamespace>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <ServerGarbageCollection>true</ServerGarbageCollection>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\shared\**\*.cs" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel.Core\Kestrel.Core.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Libuv\Kestrel.Transport.Libuv.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Http" Version="$(MicrosoftAspNetCoreHttpPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj b/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj
deleted file mode 100644
index ca79f38600ed08adf94241d9f9526d6a84ee1362..0000000000000000000000000000000000000000
--- a/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj
+++ /dev/null
@@ -1,35 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <AssemblyName>Sockets.FunctionalTests</AssemblyName>
-    <RootNamespace>Sockets.FunctionalTests</RootNamespace>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-    <DefineConstants Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(DefineConstants);MACOS</DefineConstants>
-    <DefineConstants>$(DefineConstants);SOCKETS</DefineConstants>
-    <ServerGarbageCollection>true</ServerGarbageCollection>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Compile Include="..\shared\**\*.cs" />
-    <Compile Include="..\Kestrel.FunctionalTests\**\*.cs" />
-    <Content Include="..\shared\TestCertificates\*.pfx" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup Condition="'$(TargetFramework)' != 'net461'">
-    <ProjectReference Include="..\..\tools\CodeGenerator\CodeGenerator.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Kestrel\Kestrel.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Transport.Sockets\Kestrel.Transport.Sockets.csproj" />
-    <ProjectReference Include="..\..\src\Kestrel.Https\Kestrel.Https.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/version.props b/version.props
deleted file mode 100644
index 8d05c92ab89f2fa21d4ce6a7183b853224bd5fc7..0000000000000000000000000000000000000000
--- a/version.props
+++ /dev/null
@@ -1,12 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <VersionPrefix>2.1.3</VersionPrefix>
-    <VersionSuffix>rtm</VersionSuffix>
-    <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
-    <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>
-    <BuildNumber Condition="'$(BuildNumber)' == ''">t000</BuildNumber>
-    <FeatureBranchVersionPrefix Condition="'$(FeatureBranchVersionPrefix)' == ''">a-</FeatureBranchVersionPrefix>
-    <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(FeatureBranchVersionSuffix)' != ''">$(FeatureBranchVersionPrefix)$(VersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-'))</VersionSuffix>
-    <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(BuildNumber)' != ''">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
-  </PropertyGroup>
-</Project>