HyperSharp

A C# implementation of the HTTP 1.1 protocol.

OTHER License

Stars
2

Bot releases are visible (Hide)

HyperSharp - v0.3.0 Latest Release

Published by OoLunar about 1 year ago

Added:

  • Added articles.
  • Added benchmarks.
  • Added logo.
  • Added more overloads for IServiceCollection.AddHyperSharp.
  • Added source generated HyperHeaderName enum.
  • Added source generated HyperStatus static overloads.
  • Added SourceLink support.
  • Added unit tests.

Changed:

  • Changed how cancellation tokens are internally obtained.
  • Changed HyperContext to flush all at once instead of per call.
  • Changed the default listening address.
  • Changed the default response logic.
  • Changed to MIT license.

Removed:

  • Removed HyperConnection.RemoteAddress
  • Removed HyperConnection.TcpClient
  • Removed the almighty OoLunar prefix.

Fixed:

  • Fixed broken docs link.
  • Fixed extra / being added in URIs.
  • Fixed memory leak causing invalid connections.

Other:

  • Downgraded to net7.0 for compatibility.
  • Synced config properties and added helpful overloads.
  • Updated dependencies.

Merged PR's:

New Contributors:

Http Benchmarks:

Machine Information:

BenchmarkDotNet v0.13.7, Void Linux

  • AMD Ryzen 7 6800H with Radeon Graphics, 1 CPU, 16 logical and 8 physical cores
  • Hardware Intrinsics: AVX2, AES, BMI1, BMI2, FMA, LZCNT, PCLMUL, POPCNT VectorSize=256
  • .NET 8.0.0 (8.0.23.37506), x64, RyuJIT
  • Total Execution Time: 37.864s

HttpBenchmarks

Execution Time: 37.864s

HttpClientTestAsync:

Mean: 163.40μs
Error: 940ns
StdDev: 7.22μs
Max per second: 6,120.08 (1,000,000,000ns / 163,396.52ns)

ParseHeadersTestAsync:

Mean: 3.96μs
Error: 10ns
StdDev: 34ns
Max per second: 252,775.34 (1,000,000,000ns / 3,956.08ns)

Full Changelog: https://github.com/OoLunar/HyperSharp/compare/0.2.0...0.3.0

HyperSharp - v0.2.0

Published by OoLunar about 1 year ago

HyperSharp Core Enhancements

The latest release of HyperSharp introduces a range of significant enhancements that bolster the framework's versatility, modularity, and performance. The following key improvements have been implemented:

  • Incorporation of Synchronous and Asynchronous Responders: HyperSharp now boasts the capability to execute both synchronous and asynchronous responders. This extended functionality empowers developers to design applications that are adaptable and responsive to diverse operational requirements.
  • Streamlined Namespace and Type Organization: The HyperSharp types have been meticulously restructured into more coherent and intuitive namespaces. This reorganization optimizes the codebase's clarity and maintenance, simplifying the development process.
  • Direct Interaction with Streams: An integral feature of this release is the introduction of the Connection property within the HyperContext. This attribute facilitates direct interaction with the underlying stream, allowing seamless read and write operations. This enhancement streamlines communication processes, enhancing operational efficiency.
  • Enhanced Performance Optimization: Substantial optimization efforts have been put into all HyperSharp types. These refinements translate to expedited execution times and an overall more efficient runtime, ensuring optimal application performance.
  • Comprehensive Support for CancellationToken: Comprehensive support for CancellationToken has been seamlessly integrated, affording developers greater control over asynchronous operations. This inclusion enhances the predictability and reliability of asynchronous workflows.
  • Compiled Logging Mechanism: Notably, all logging processes within HyperSharp have been meticulously compiled. This compilation process optimizes logging procedures, reducing overhead and augmenting runtime performance.

HyperSharp.Results Package

The introduction of the HyperSharp.Results package heralds a novel approach to managing and conveying results within applications:

  • Efficient Result Management: HyperSharp.Results supersedes FluentResults by offering an efficient struct-based mechanism for result management. The transition is designed to be smooth, with the familiar Ok response elegantly replaced by Success, aligning with the package's established nomenclature.

HyperSharp.Responders Package

The revamped HyperSharp.Responders package introduces advanced capabilities for handling custom input and return types:

  • Versatile Custom Event Handling: HyperSharp.Responders leverages generics to accommodate custom input and return types. This empowers developers to seamlessly integrate and reuse the system across a spectrum of scenarios, enhancing both code maintainability and reusability.
  • Seamless Synchronization and Asynchronization in Responders: Whether dealing with synchronous or asynchronous responders, the package's functionality remains consistent. Invoking responders, irrespective of their nature, is akin to executing a single delegate. This streamlined approach simplifies the development process.

In summary, the latest HyperSharp release underscores a commitment to providing a modular, high-performing, and adaptable framework. The distinct packages - HyperSharp.Core, HyperSharp.Results, and HyperSharp.Responders - collectively contribute to a cohesive ecosystem, amplifying the development experience and empowering developers to construct resilient and efficient applications.

ok so maybe this was generated from ChatGPT but please I don't have the patience to write all of this by hand thanks for understanding

HyperSharp - v0.1.0

Published by OoLunar about 1 year ago

This is HyperSharp's first initial release. Currently a full HTTP Rest Request takes 1ms or less. The responder system is implemented and fully tested. All responses are serialized to JSON. The HyperContext class is overridable in the event that you do not wish to return a JSON response. Lastly we have IError json serializers which can be used for pretty-printing errors during development or production.

Full Changelog: https://github.com/OoLunar/HyperSharp/commits/0.1.0