Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/docker/httpoverstream
.NET library for using HTTP 1.1 over streams, especially Windows Named Pipes
https://github.com/docker/httpoverstream
csharp named-pipes streams
Last synced: 4 months ago
JSON representation
.NET library for using HTTP 1.1 over streams, especially Windows Named Pipes
- Host: GitHub
- URL: https://github.com/docker/httpoverstream
- Owner: docker
- License: apache-2.0
- Created: 2018-12-11T08:49:49.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-11-10T14:35:35.000Z (about 1 year ago)
- Last Synced: 2024-10-07T11:00:04.024Z (4 months ago)
- Topics: csharp, named-pipes, streams
- Language: C#
- Homepage:
- Size: 176 KB
- Stars: 33
- Watchers: 39
- Forks: 21
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HttpOverStream
[![NuGet](https://img.shields.io/nuget/v/HttpOverStream?color=green)](https://www.nuget.org/packages/HttpOverStream/)
[![Build Status](https://ci-next.docker.com/public/job/HttpOverStream/job/master/badge/icon)](https://ci-next.docker.com/public/job/HttpOverStream/job/master/)Used by Docker Desktop.
.NET library for using HTTP 1.1 over streams, especially Windows Named Pipes.
This library essentially allows inter-process communication over named pipes using HTTP which doesn't require opening ports on the host machine like a standard web server.
There is both a client and server implementation and these have been tested across languages (GoLang and Javascript so far can both successfully send and receive messages here).
Server implementation in OWIN is more production ready than the .NET Core version.Server usage (OWIN) is like this:
```
var server = CustomListenerHost.Start(startupAction, new NamedPipeListener(pipeName));
```Client usage:
```
_httpClient = new NamedPipeHttpClientBuilder("myPipeName")
.WithPerRequestTimeout(TimeSpan.FromSeconds(5))
.Build();
var response = await _httpClient.GetAsync("/api/endpoint");
```