Skip to content

Commit 74d5726

Browse files
authored
Merge pull request #744 from dotnet/libtemplateUpdate
Add package README
2 parents 7113648 + e0474c3 commit 74d5726

File tree

3 files changed

+47
-5
lines changed

3 files changed

+47
-5
lines changed

.config/dotnet-tools.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
"isRoot": true,
44
"tools": {
55
"powershell": {
6-
"version": "7.4.1",
6+
"version": "7.4.2",
77
"commands": [
88
"pwsh"
99
]
1010
},
1111
"dotnet-coverage": {
12-
"version": "17.10.4",
12+
"version": "17.11.0",
1313
"commands": [
1414
"dotnet-coverage"
1515
]
@@ -21,4 +21,4 @@
2121
]
2222
}
2323
}
24-
}
24+
}

Directory.Packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<PackageVersion Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
2929
<PackageVersion Include="xunit.abstractions" Version="2.0.3" />
3030
<PackageVersion Include="xunit.combinatorial" Version="1.6.24" />
31-
<PackageVersion Include="xunit.extensibility.core" Version="2.7.0" />
31+
<PackageVersion Include="xunit.extensibility.core" Version="2.7.1" />
3232
<PackageVersion Include="xunit.runner.console" Version="2.6.4" />
3333
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.7" />
3434
<PackageVersion Include="xunit.skippablefact" Version="1.4.13" />
35-
<PackageVersion Include="xunit" Version="2.7.0" />
35+
<PackageVersion Include="xunit" Version="2.7.1" />
3636
</ItemGroup>
3737
<ItemGroup>
3838
<GlobalPackageReference Include="CSharpIsNullAnalyzer" Version="0.1.495" />

src/Nerdbank.Streams/README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Specialized .NET Stream classes
2+
3+
*Enhanced streams for communication in-proc or across the Internet.*
4+
5+
## Features
6+
7+
1. [`SimplexStream`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/SimplexStream.md) is meant to allow two parties to communicate *one direction*.
8+
Anything written to the stream can subsequently be read from it. You can share this `Stream`
9+
with any two parties (in the same AppDomain) and one can send messages to the other.
10+
1. [`FullDuplexStream`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/FullDuplexStream.md) creates a pair of bidirectional streams for
11+
in-proc two-way communication; it also creates a single bidirectional stream from two
12+
unidirectional streams.
13+
1. [`MultiplexingStream`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/MultiplexingStream.md) allows you to split any bidirectional
14+
.NET Stream into many sub-streams (called channels). This allows two parties to establish
15+
just one transport stream (e.g. named pipe or web socket) and use it for many independent
16+
protocols. For example, one might set up JSON-RPC on one channel and use other channels for
17+
efficient binary transfers.
18+
1. [`AsStream()`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/AsStream.md) wraps a `WebSocket`, `System.IO.Pipelines.PipeReader`,
19+
`System.IO.Pipelines.PipeWriter`, or `System.IO.Pipelines.IDuplexPipe` with a
20+
`System.IO.Stream` for reading and/or writing.
21+
1. [`UsePipe()`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/UsePipe.md) enables reading from
22+
and writing to a `Stream` or `WebSocket` using the `PipeReader` and `PipeWriter` APIs.
23+
1. [`Stream.ReadSlice(long)`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/ReadSlice.md) creates a sub-stream that ends after
24+
a given number of bytes.
25+
1. [`PipeReader.ReadSlice(long)`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/ReadSlice.md) creates a sub-`PipeReader` that ends after
26+
a given number of bytes.
27+
1. [`MonitoringStream`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/MonitoringStream.md) wraps another Stream and raises events for
28+
all I/O calls so you can monitor and/or trace the data as it goes by.
29+
1. [`WriteSubstream` and `ReadSubstream`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/Substream.md) allow you to serialize data of
30+
an unknown length as part of a larger stream, and later deserialize it such in reading the
31+
substream, you cannot read more bytes than were written to it.
32+
1. [`Sequence<T>`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/Sequence.md) is a builder for `ReadOnlySequence<T>`.
33+
1. [`PrefixingBufferWriter<T>`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/PrefixingBufferWriter.md) wraps another `IBufferWriter<T>`
34+
to allow for prefixing some header to the next written buffer, which may be arbitrarily long.
35+
1. [`BufferTextWriter`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/BufferTextWriter.md) is a `TextWriter`-derived type that can
36+
write directly to any `IBufferWriter<byte>`, making it more reusable than `StreamWriter`
37+
and thus allows for alloc-free writing across many writers.
38+
1. [`SequenceTextReader`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/SequenceTextReader.md) is a `TextReader`-derived type that can
39+
read directly from any `ReadOnlySequence<byte>`, making it more reusable than `StreamReader`
40+
and thus allows for alloc-free reading across many sequences.
41+
1. [`DuplexPipe`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/DuplexPipe.md) is a trivial implementation of `IDuplexPipe`.
42+
1. [`Stream.ReadBlockAsync`](https://github.com/dotnet/Nerdbank.Streams/blob/main/doc/ReadBlockAsync.md) guarantees to fill the supplied buffer except under certain documented conditions, instead of the regular `ReadAsync` guarantee of supplying at least 1 byte.

0 commit comments

Comments
 (0)