-
Notifications
You must be signed in to change notification settings - Fork 7
/
Directory.Build.props
70 lines (61 loc) · 3.88 KB
/
Directory.Build.props
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<Project>
<PropertyGroup>
<Copyright>Copyright © 2024 Petabridge, LLC</Copyright>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<VersionPrefix>0.1.1</VersionPrefix>
<Authors>Petabridge</Authors>
<PackageReleaseNotes>TurboMqtt v0.1.1 includes critical bug fixes and massive performance improvements over v0.1.0.
**Bug Fixes and Improvements**
* [Fixed QoS=1 packet handling - was previously treating it like QoS=2](https://github.com/petabridge/TurboMqtt/pull/103).
* [Improved flow control inside `ClientAckHandler`](https://github.com/petabridge/TurboMqtt/pull/105) - result is a massive performance improvement when operating at QoS 1 and 2.
* [Fix OpenTelemetry `TagList` for clientId and MQTT version](https://github.com/petabridge/TurboMqtt/pull/104) - now we can accurately track metrics per clientId via OpenTelemetry.
**Performance**
```
BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3447/23H2/2023Update/SunValley3)
12th Gen Intel Core i7-1260P, 1 CPU, 16 logical and 12 physical cores
.NET SDK 8.0.101
[Host] : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2
Job-FBXRHG : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2
InvocationCount=1 LaunchCount=10 RunStrategy=Monitoring
UnrollFactor=1 WarmupCount=10
```
| Method | QoSLevel | PayloadSizeBytes | ProtocolVersion | Mean | Error | StdDev | Median | Req/sec |
|-------------------------- |------------ |----------------- |---------------- |----------:|----------:|---------:|----------:|-----------:|
| **PublishAndReceiveMessages** | **AtMostOnce** | **10** | **V3_1_1** | **5.175 μs** | **0.6794 μs** | **2.003 μs** | **4.345 μs** | **193,230.35** |
| **PublishAndReceiveMessages** | **AtLeastOnce** | **10** | **V3_1_1** | **26.309 μs** | **1.4071 μs** | **4.149 μs** | **25.906 μs** | **38,010.35** |
| **PublishAndReceiveMessages** | **ExactlyOnce** | **10** | **V3_1_1** | **44.501 μs** | **2.2778 μs** | **6.716 μs** | **42.175 μs** | **22,471.53** |
[Learn more about TurboMqtt's performance figures here](https://github.com/petabridge/TurboMqtt/blob/dev/docs/Performance.md).</PackageReleaseNotes>
</PropertyGroup>
<PropertyGroup Label="Build">
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup Label="NuGetMetaData">
<PackageProjectUrl>https://github.com/petabridge/TurboMqtt</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>logo.png</PackageIcon>
<!-- Need the icon URL for Sdkbin -->
<PackageIconUrl>https://raw.githubusercontent.com/petabridge/TurboMqtt/dev/docs/logo.png</PackageIconUrl>
</PropertyGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)\README.md" Pack="true" Visible="false" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\LICENSE.md" Pack="true" Visible="false" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\docs\logo.png" Pack="true" Visible="false" PackagePath="\" />
</ItemGroup>
<!-- SourceLink support for all TurboMqtt projects -->
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
</ItemGroup>
<PropertyGroup>
<!--<PublishRepositoryUrl>true</PublishRepositoryUrl>-->
<RepositoryUrl>https://github.com/petabridge/TurboMqtt</RepositoryUrl>
<!-- Optional: Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Optional: Build symbol package (.snupkg) to distribute the PDB containing Source Link -->
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
</Project>