百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

9月份9个热门.Net开源项目汇总!

liuian 2025-01-01 21:35 16 浏览

今天盘点下9月份推荐的9个开源项目。


1、Pidgin:一个轻量级、快速且灵活的 C# 解析库

Pidgin是基于C#的开源项目,是一个解析组合器库,提供了一个高级别的声明性工具来构建解析器,使得编写解析器变得简单而直观。

1、轻量化与高效

Pidgin专注于提供轻量级的解决方案,旨在减少内存占用和提高解析速度。通过精心设计的数据结构和算法,Pidgin 能够在不牺牲功能的前提下实现高效的解析。

2、灵活性

Pidgin 支持解析各种复杂的数据格式,不仅限于文本数据。由于其能够处理任意类型的输入令牌(tokens),Pidgin 可以用于解析二进制协议、标记化输入等多种场景。

3、易于使用

与正则表达式相比,Pidgin 提供了更强大的解析能力,而与 ANTLR 等解析生成器相比,它又更简单易用。

Pidgin 的 API 设计直观,允许开发者以声明性的方式定义语法规则,而无需编写复杂的代码。

Star:896?

项目地址:https://github.com/benjamin-hodgson/Pidgin


2、Sep:一个低内存、高性能的CSV文件读写操作.Net开源库

Sep 是一个高性能的 .NET CSV 解析器,具备快速、现代、简洁且高效的数据处理能力。

先进特性:采用 .NET 7+ 和 C# 11+ 的先进特性,例如 Span<T>、泛型数学接口(ISpanParsable<T>/ISpanFormattable)、ref struct、ArrayPool<T> 等,打造了一个现代且高效的实现方式。

简洁API:提供了一个简洁而富有表现力的 API,选项精简,对输入输出的处理透明无隐藏。你看到什么就得到什么。例如,它默认不会自动处理引号的转义/取消转义。

极速性能:通过架构特定和跨平台的 SIMD 矢量化解析技术,支持 64/128/256/512 位路径(如 AVX2、AVX-512(.NET 8.0+)、NEON),实现极速处理。利用 csFastFloat 快速解析浮点数。高效地逐行读取或写入数据,并有详尽的基准测试验证其性能。

多线程加速:通过高效的并行 CSV 解析技术,实现超快速度,比 CsvHelper 快达 35 倍。

低内存占用:智能高效的内存管理策略,在预热后实现零内存分配,包括轻松读取或写入值数组(如特征数据)而无需重复分配内存。

全面测试保障:拥有广泛的代码覆盖率,专注于边缘情况的测试,包括随机模糊测试,确保数据处理的准确性和稳定性。

跨平台兼容:支持 .NET 支持的所有平台和架构,100% 托管,采用现代 C# 编写,代码优美。

可修剪且兼容 AOT/NativeAOT:无反射或动态代码生成,确保完全可修剪且与提前编译(Ahead-of-Time)兼容。简单的控制台测试程序,可执行文件体积小,仅几 MB。

实用主义:遵循 RFC-4180 的核心原则,但在引用和行结束处理上采取实用主义方法。

Star:838?

项目地址:https://github.com/nietras/Sep


3、Atata:一个基于 Selenium的C#自动化测试Web框架

Atata Framework 是一个基于 Selenium WebDriver 的 C#/.NET Web UI 测试自动化全功能框架。

它使用流畅的页面对象模式;具有内置的日志记录系统;包含独特的触发器功能;具有一组即用型组件。

该框架的关键思想之一是为定义和使用页面对象提供简单直观的语法,页面对象实现需要尽可能少的代码。

而且描述一个页面对象类,无需任何方法,只需一组用属性标记的属性,这些属性就代表页面组件。

Star:490?

项目地址:https://github.com/atata-framework/atata


4、ChoETL:支持多数据库读写.Net开源库,包含 CSV、XML、JSON等8个格式

ChoETL 是一个开源的 .NET ETL(Extract, Transform, Load)框架。

它提供了解析和写入多种文件格式的能力,包括但不限于 CSV、FixedLength、XML、JSON、Key-Value、Parquet、YAML 和 Avro格式的文件、数据库。

Star:796?

项目地址:https://github.com/Cinchoo/ChoETL


5、HtmlSanitizer: 一个保护你的网站免受XSS攻击的.Net开源项目

HtmlSanitizer 是一个强大的库,它能够审查和清理 HTML 内容,移除或转义那些可能被用于 XSS 攻击的标签和属性。

这个工具的核心功能是提供一个安全的方式来处理用户提交的 HTML,确保这些内容在被渲染到网页上之前是无害的。

Star:1.6K?

项目地址:https://github.com/mganss/HtmlSanitizer


6、CSCore:一个.Net功能强大且灵活的开源音频处理库

CSCore是一个使用C#编写的音频库,它提供了丰富的功能,从播放和录制音频,到解码和编码音频流/文件,再到实时处理音频数据(如播放时应用自定义效果、创建可视化等)。

CSCore 基于一个非常可扩展的架构,这使得你可以毫不费力地使其满足你的需求。

支持的平台:仅限 Windows,Linux 和 Mac 为实验性支持。

Star:2.2K?

项目地址:https://github.com/filoe/cscore


7、Boxed:包含多个.Net项目模板,涵盖了ASP.NET Core API、GraphQL等。

.Net Boxed该项目为.NET开发者提供了一套包含基本代码的项目模板,涵盖了ASP.NET Core API、ASP.NET Core GraphQL、Microsoft Orleans以及NuGet Package的项目。

Star:3.4K?

项目地址:https://github.com/Dotnet-Boxed/Templates


8、Html2OpenXml:HTML转化为OpenXml的.Net库,轻松实现Html转为Word

Html2OpenXml 是一个开源.Net库,旨在将简单或复杂的HTML内容转换为OpenXml组件。

该项目始于2009年,最初是为了将用户评论转换为Word文档而设计的

随着时间的推移,Html2OpenXml 不断发展和完善,现在已经成为处理HTML到OpenXml转换的强大工具。

Star:313?

项目地址:https://github.com/onizet/html2openxml


9、tesseract:一个.Net版本的开源OCR项目

tesseract是针对Tesseract-OCR(C++)引擎封装的.NET版本,支持超过100种语言的文本识别,使得.NET开发者能够轻松地利用Tesseract的强大功能,无需深入了解OCR的底层技术。

此项目缺点是,只能识别印刷的文本,针对手写的需要自己训练语言包。

Star:2.3K?

项目地址:https://github.com/charlesw/tesseract

- End -

.Net开源项目合集:
https://github.com/bianchenglequ/NetCodeTop

相关推荐

第7章 Linux磁盘管理—磁盘格式化和挂载

提醒:本文为合集文章,后续会持续更新!关注我,每日提升!7.3 格式化磁盘分区磁盘分区虽然分好区了,但暂时还不能用,我们还须对每一个分区进行格式化。所谓格式化,其实就是安装文件系统,Windows下的...

Linux三剑客之sed命令详解,小白也能看得懂!

sed全称为StreamEDitor,行编辑器,同时也是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处...

Rust语言介绍,新崛起的编程语言

Rust是一门系统编程语言,由于其独特的特点和性能,近年来备受开发者关注,是近几年发展最迅猛的编程语言之一。据StackOverflow开发者调查显示,Rust连续第八年被评为最受喜爱的编程语言,...

What does &quot; 2&gt;&amp;1 &quot; mean?

技术背景在Linux或Unix系统中,程序通常会将输出发送到两个地方:标准输出(stdout)和标准错误(stderr)。标准输出用于正常的程序输出,而标准错误则用于输出程序运行过程中产生的错误信息。...

玩转命令行:7 个高效 Linux 命令技巧,助你事半功倍!

日常的运维、开发、测试过程中,Linux命令行无疑是我们最常接触的界面之一。掌握一些不为人知但极具实用价值的命令技巧,不仅能大幅提升你的工作效率,更能在关键时刻帮你快速定位问题、批量处理任务、自动化...

作为测试人,如何优雅地查看Log日志?

作为一名测试工程师,测试工作中和Linux打交道的地方有很多。比如查看日志、定位Bug、修改文件、部署环境等。项目部署在Linux上,如果某个功能发生错误,就需要我们去排查出错的原因,所以熟练地掌握查...

Linux新手必备:20个高效命令轻松掌握!

Linux基本命令使用指南在现代计算机操作系统中,Linux因其开放性、灵活性和强大的功能,广泛应用于服务器和开发环境中。作为技术人员,掌握Linux的基本命令是非常重要的。在本文中,我们将重点介绍2...

如何在 Linux 中有效使用 history 命令?

在Linux中,每当你在终端输入一条命令并按下回车,这条命令就会被默默记录下来。而history命令的作用,就是让你回顾这些操作的足迹。简单来说,它是一个“命令行日记本”,默认存储在用户主目录...

Linux/Unix 系统中find命令用法

find是Linux/Unix系统中一个非常强大且灵活的命令,用于在目录层次结构中查找文件和目录。它允许你根据各种条件(如名称、类型、大小、权限、修改时间等)来搜索,并对找到的结果执行操作。基本...

阿里云国际站:如何通过日志分析排查故障?

本文由【云老大】TG@yunlaoda360撰写一、日志收集确定日志位置:应用程序日志:通常位于/var/log/或应用程序的安装目录下,例如Nginx的日志位于/var/log/ngi...

Linux History命令:如何显示命令执行的日期和时间

在Linux系统中,history命令是一个简单却强大的工具,它允许用户查看和重用之前执行过的命令。然而,默认情况下,history命令的输出仅显示命令的序号和内容,并不包含命令执行的日期和时间。这对...

在R语言中使用正则表达式

有时候我们要处理的是非结构化的数据,例如网页或是电邮资料,那么就需要用R来抓取所需的字符串,整理为进一步处理的数据形式。R语言中有一整套可以用来处理字符的函数,在之前的博文中已经有所涉及。但真正的...

网络安全实战:记一次比较完整的靶机渗透

0x01信息搜集nmap-sC-sV-p--A10.10.10.123-T4-oAnmap_friendzone访问80端口的http服务只发现了一个域名。0x02DNS区域传输因...

Java程序员必备的Linux命令

Java程序员必备的Linux命令作为一名Java开发者,在日常工作中难免会与Linux服务器打交道。熟练掌握一些常用的Linux命令,不仅能提高工作效率,还能让你在团队中显得更加专业。今天,我将带你...

linux shell 笔记——1

shell的格式开头#!/bin/bash或者#!/bin/sh开头系统变量:HOME、HOME、HOME、PWD、SHELL、SHELL、SHELL、USER,PATH等等比方:echo$...