Cursively
AlterNats
Cursively | AlterNats | |
---|---|---|
3 | 1 | |
39 | 270 | |
- | - | |
3.2 | 10.0 | |
over 3 years ago | 10 months ago | |
C# | C# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Cursively
-
Ask HN: Examples of Top C# Code?
I was looking at the CSV parser Cursively recently, and I think it is a good simple example of a high performance C# parser and API design.
https://github.com/airbreather/Cursively
-
The Fastest Csv Parser In Net
Agreed, and agreed. #21 and #22 seek to address this, but these have actually been very low priority for me: as your benchmarks show, if you primarily need a bunch of objects that must be UTF-16 strings, then are other libraries out there that will do the job just fine. The main reason to use Cursively for that would be if you have some use cases where you need the unusual qualities that Cursively offers, but other use cases where you can live with something more traditional, and you don't want to have two different CSV processing libraries.
The usage instructions are in the README on https://github.com/airbreather/Cursively. The most straightforward way to get started (for now) is:
AlterNats
-
Ask HN: Examples of Top C# Code?
I have had the pleasure of contributing to a couple different networked drivers with very talented maintainers that I like to use as references.
One supports a wide array of Framework versions and has both Sync and Async I/O, as it must to implement the ADO.NET database driver interfaces. Reading the internals really highlight the way that .NET has evolved over the years and what must be done in each target version to maximize performance:
https://github.com/mysql-net/MySqlConnector
The other supports .NET 6 only with Async I/O only. This support policy seems to be the way that "modern" .NET development is headed, as .NET 6 will be the floor for LTS .NET (formerly .NET Core) releases in a few months. Async APIs only greatly simplify development, and make it simpler to remain performant when targeting WASM.
https://github.com/Cysharp/AlterNats
As a library maintainer, one thing I often wonder about is how to indicate .NET version support. One option would be for the major version of the library to track the major version of .NET, so if I were to publish a new library today then start with .NET 6 support and start with version number 6.0.0 instead of 1.0.0. This would limit the library to only making breaking changes when the .NET version changes though.
What are some alternatives?
CsvExport - Very simple CSV-export tool for C#
calculator - Windows Calculator: A simple yet powerful calculator that ships with Windows
Sylvan - A collection of .NET libraries, including the fastest general-purpose CSV parser for .NET.
MySqlConnector - MySQL Connector for .NET
PdfSharpCore - Port of the PdfSharp library to .NET Core - largely removed GDI+ (only missing GetFontData - which can be replaced with freetype2)
adventofcode - :christmas_tree: Advent of Code (2015-2023) in C#
H.Pipes - A simple, easy to use, strongly-typed, async wrapper around .NET named pipes.
referencesource - Source from the Microsoft .NET Reference Source that represent a subset of the .NET Framework
oqtane.framework - CMS & Application Framework for Blazor & .NET MAUI
eShopOnWeb - Sample ASP.NET Core 8.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
CsvBenchmarks - Benchmarks for various .NET libraries.
.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.