当前位置:   article > 正文

《HelloGitHub》第 67 期

开源 lexer

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

63e99246ed61b9620df3eb4bee76c2f1.png

简介

分享 GitHub 上有趣、入门级的开源项目。

https://github.com/521xueweihan/HelloGitHub

这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!


以下为本期内容|每个月 28 号更新

C 项目

1、bytehound:更强大的 Linux 内存分析工具。它能够显示内存变化曲线、占用详情、完整的堆栈记录等信息,有助于解决内存泄漏等问题

a2074c24cc0e6eee4efb0d5c5843fafe.png

地址:https://github.com/koute/bytehound

2、nnn:几乎不需要配置就能用的终端文件管理工具。它运行仅需极少的内存但功能却不少,支持文件实时预览、搜索、批量操作文件、排序等,不仅如此它还能作为插件整合进 Vim

b9c968e32c40f11944a4ccc3a1f8637b.gif

地址:https://github.com/jarun/nnn

C# 项目

3、ShareX:免费的 Windows 截屏录制工具。功能强大支持全屏截图、滚动截图、检测窗口截图、GIF 录制等,截图后还支持在图片上增加文字、水印、特效、马赛克等,最后可直接上传图床得到链接,丝滑地完成整个截图流程

8c8271cbf7512d063804381440fdd33a.png

地址:https://github.com/ShareX/ShareX

C++ 项目

4、NanaZip:基于 7-Zip 的开源压缩工具。包含多种压缩算法和美观的 Win11 风格 UI,同时适配 Win11 右键菜单操作

3393d31530d24a93bb1ef40f2162b539.png

地址:https://github.com/M2Team/NanaZip

5、nvui:跨平台现代的 Neovim 前端。它使用起来流畅,动画效果细腻、美观,你可以用 Neovim 和 nvui 自由定制出一个高颜值、最懂你的编辑器

8cea1d1e3a2a763a0390b13383b26fd0.png

地址:https://github.com/rohit-px2/nvui

CSS 项目

6、You-Dont-Need-JavaScript:看似需要 JavaScript 实现的效果,其实仅用到了 CSS 的示例集合。该项目学习意义大于实用价值,更多的时候是为了让你知道原来 CSS 还能这么用

577d1d4fb12cd9fa5160981e5858250d.gif

地址:https://github.com/you-dont-need/You-Dont-Need-JavaScript

7、weather-icons:天气主题图标和 CSS 文件。包含 220+ 个高质量的天气图标

632c2156b0b49cc714c9f0d945ba646c.png

地址:https://github.com/erikflowers/weather-icons

Go 项目

8、gopay:Go 的集合支付库。支持微信、支付宝、PayPal、QQ 支付

d863216775705ab395307f132d2ecffe.png

地址:https://github.com/go-pay/gopay

9、remark42:简单轻量级的评论引擎。任何需要评论的页面,都可以通过 remark42 快速实现评论功能。功能丰富包括登陆、多层嵌套回复、删除评论、投票、禁止用户评论、图片上传等功能

bad0861ba39a6f3886a37bd07d830b56.png

地址:https://github.com/umputun/remark42

10、rpcx:国内大佬开源的 Go 语言 RPC 框架。框架入门轻松能够快速上手,性能优于 grpc-go 而且众多国内大厂都在用

b1b417f6f86de7decf7a4c9d7e61a981.png

地址:https://github.com/smallnest/rpcx

Java 项目

11、shattered-pixel-dungeon:开源的像素风 RougeLike 角色扮演游戏,耐玩且支持中文。游戏虽然画面怀旧但内容丰富,可选战士、法师、射手、盗贼四种角色,超过 150 种道具玩法多样。每场探险都不一样,每次开局都是随机生成关卡和敌人。游戏看似简单但上手有难度,想要通关需要花些时间研究。支持 PC、安卓和 iOS 客户端,下载地址

fde4fdb0e70b6a21223f36378778e20b.png

地址:https://github.com/00-Evan/shattered-pixel-dungeon

12、uncle-novel:一款电脑端小说阅读软件。该软件不仅支持本地导入小说,自动解析生成目录方便阅读。还支持全网搜索和下载小说、在线收听有声小说、自动更新章节等功能

c0074d22279e013a8d8a836dade5711a.png

地址:https://github.com/unclezs/uncle-novel

JavaScript 项目

13、Leaflet:对移动端友好的交互式地图 JavaScript 库。它久负盛名且简单易用,别看它小但包含了地图常用功能。Leaflet 极易上手,几行代码就能实现地图功能,且支持多种地图数据源。很多大厂都在用它,可放心在生产环境中使用

  1. var map = L.map('map').setView([51.505-0.09], 13);
  2. L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  3.     attribution: '©OpenStreetMap contributors'
  4. }).addTo(map);
  5. L.marker([51.5-0.09]).addTo(map)
  6.     .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
  7.     .openPopup();
dd02ccd7a9a1339e1ea81227fc3e2cc1.png

地址:https://github.com/Leaflet/Leaflet

14、React95:复古的 Win95 样式 React 组件

31d573a174a9bd92b731fb0bbce6e6ad.png

地址:https://github.com/arturbien/React95

15、towxml:可将 HTML 和 Markdown 转为微信小程序 WXML 的库。用于解决在微信小程序上 Markdown、HTML 不能直接渲染的问题

bd6f22753c00a2cc0ff0a880ecda5afb.png

地址:https://github.com/sbfkcel/towxml

16、city-roads:自动生成任意城市的道路图。采用 OpenStreetMap 的免费数据实现城市道路可视化,还支持导出图片用这些图片做壁纸感觉很酷

710a2c01fea69f2012756062ed95c87f.png

地址:https://github.com/anvaka/city-roads

17、lexer:在线编程语言词法分析器。基于 DFA 算法实现支持多语言扩展,可用于代码编辑器的语法高亮等场景。同时项目的代码量少还有详细的源码讲解文档,适合对词法分析感兴趣的小伙伴学习

  1. // 词法分析器
  2. let lexer = {
  3.     // 有限状态自动机 deterministic finite automaton
  4.     DFA: {
  5.         result: {
  6.             matchs: [], // 已匹配的字符队列
  7.             tokens: [], // 已生成的token列表
  8.         },
  9.         state: DFA_STATE_CONST.S_RESET, // 当前机器的状态
  10.         events: {
  11.             flowtoNextState(ch, state) {
  12.                 lexer.DFA.resultChange.pushToMatchs(ch);
  13.                 lexer.DFA.state = state;
  14.             },
  15.             flowtoResetState() {
  16.                 lexer.DFA.state = DFA_STATE_CONST.S_RESET;
  17.             },
  18.         },
  19.     },
  20. };
5d63c8f9d9a17217356725285d2d0e69.gif

地址:https://github.com/WGrape/lexer

18、semi-design:抖音开源的中后台前端解决方案。包含设计语言、React 组件、主题,开箱即用可快速搭建美观的 React 应用

  • 使用 TypeScript

  • 强大的主题定制

  • 国际化

  • 支持 SSR

f8e62a73b443ca2b78fdc4356b43694e.png

地址:https://github.com/DouyinFE/semi-design

Kotlin 项目

19、TranslationPlugin:IDE 翻译插件。支持 JetBrains 系列产品

5d6d9c4be2ec0587bba046324f5dbf46.png

地址:https://github.com/YiiGuxing/TranslationPlugin

Python 项目

20、python-pinyin:汉语转拼音的 Python 库。不知道有没有小伙伴和我一样,刚看到这库不知道能用来干啥。其实它可以用来丰富被搜索的中文内容,通过该项目可实现拼音搜索内容、容错同音错别字、中文排序等,从而提高搜索准确度和体验

  1. >>> from pypinyin import pinyin, lazy_pinyin, Style
  2. >>> pinyin('中心')
  3. [['zhōng'], ['xīn']]
  4. >>> pinyin('中心', heteronym=True)  # 启用多音字模式
  5. [['zhōng''zhòng'], ['xīn']]
  6. >>> pinyin('中心', style=Style.TONE3, heteronym=True)
  7. [['zhong1''zhong4'], ['xin1']]

地址:https://github.com/mozillazg/python-pinyin

21、q:用 SQL 方式查询 CSV 文件的命令行工具。支持 where、group_by、join 查询和中文等多种字符编码,还可以把查询结果转存到数据库。终于不用为产品临下班,扔来的 CSV 文件而加班啦

  1. "SELECT COUNT(*) FROM ./clicks_file.csv WHERE c3 > 32.3"
  2. ps -ef | q -H "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC"

地址:https://github.com/harelba/q

22、Tkinter-Designer:用拖动的方式创建漂亮的桌面软件。它的操作十分简单,首先在 Figma 网站通过拖拽的方式构建应用,然后把设计好的应用地址和 token 输入到 Tkinter-Designer 自动生成 Python 代码,最后就能得到界面简洁大方的桌面应用啦。不用代码做出基于 tkinter 的桌面应用

ac5e94c0155daf80f572eac3fd332aba.png

地址:https://github.com/ParthJadhav/Tkinter-Designer

23、30-Days-Of-Python:免费、零基础的 Python 教程。保姆级 Python 教程内容虽为英文,但问题不大请放心食用

f6e04ce193bdcd69b46ab9f7e86eb2a6.png

地址:https://github.com/Asabeneh/30-Days-Of-Python

Rust 项目

24、polars:多线程、类 Pandas 的数据处理库。底层采用 Apache Arrow 从而带来了更高效的数据处理性能、占用内存更少、处理速度更快,再加上简单易用的 API,让你在处理大数据集(50GB)时,更加游刃有余。支持 Rust、Python 等语言,值得一试

  1. import polars as pl
  2. q = (
  3.     pl.scan_csv("iris.csv")
  4.     .filter(pl.col("sepal_length") > 5)
  5.     .groupby("species")
  6.     .agg(pl.all().sum())
  7. )
  8. df = q.collect()
a2e2eb6b978f84673661ffb87393923f.png

地址:https://github.com/pola-rs/polars

Swift 项目

25、Charts:支持 iOS/tvOS/OSX 的图表库。功能:

  • 8 种不同的图表类型

  • 两个轴支持缩放和缩放手势

  • 组合图表、导出图片

  • 等等

df05e89022956f407c71c7a6ab99e33f.png

地址:https://github.com/danielgindi/Charts

其它

26、chinese_chatbot_corpus:公开的中文聊天语料库

030b8f9fed0c2e5908ce1ad351220d81.png

地址:https://github.com/codemayq/chinese_chatbot_corpus

27、supercookie:讲解并实现如何通过 favicon.ico 跟踪用户。supercookie 的跟踪方式不需要 cookie,原理是浏览器访问网站时都会请求 favicon.ico 文件,服务器通过该请求为每个用户分配一个 ID 从而实现跟踪效果

4b1e73a3fa9982a42e02d02711a24509.png

地址:https://github.com/jonasstrehle/supercookie

28、git-cheat-sheet:Git 备忘录。该项目不仅对 Git 常用命令做了分类展示,还有 Git 工作流的讲解,能够帮助新手快速上手 Git

6541006478af4b3a5d31e489f2b32b89.png

地址:https://github.com/arslanbilal/git-cheat-sheet

29、flutter_deer:Flutter 练习项目。包含代码、UI 设计图、集成测试、相关文章等

386f6ce80042725058ea5f8ac8ff5052.png

地址:https://github.com/simplezhli/flutter_deer

30、shellcheck:Shell 静态分析工具。写过 shell 脚本的人,应该都经历过运行调试脚本的情况。有了 shellcheck 无需运行就能发现 sh/bash 的语法、类型等错误

8efcc992ee61bfd031c9809339b5806a.png

地址:https://github.com/koalaman/shellcheck

31、n:简单易用的 Node.js 版本管理工具

0ba56808916a9c58f147a90696774311.gif

地址:https://github.com/tj/n

32、aliyunpan:基于网页版阿里云盘开发的 PC 客户端。能够同时登陆和管理多个账号、显示文件体积、文件夹树,还可以在线播放网盘中的视频并外挂字幕。支持 Windows、Linux、macOS 操作系统

fc1a188a7b3cfadface8c4550e423474.png

地址:https://github.com/liupan1890/aliyunpan

开源书籍

33、AlgoXY:作者正在重写《算法新解》,开源仓库同步更新

931ebf89ed7bc70ff18de3853946aa3a.png

地址:https://github.com/liuxinyu95/AlgoXY

机器学习

34、Real-ESRGAN:图像超分辨率模型,修复漫画图像的效果惊艳。通过 AI 技术将低分辨率、模糊的图像修复成高清图像,可用于图像放大和提升质量。还有可以直接使用的 Python 脚本,快去试试效果吧

12fe3fc40df827132f75c19f008d94c4.gif

地址:https://github.com/xinntao/Real-ESRGAN

35、qlib:微软开源的 AI 量化交易平台。它包含了数据处理、模型训练、回测等模块,涵盖了 Alpha 挖掘、风险建模、组合优化等功能

4d8bc465804210303a89752f8086947b.png

地址:https://github.com/microsoft/qlib

36、optuna:专为机器学习准备的超参数优化框架。采用高效的采样和剪枝策略,支持简单的 Python 语法,仅需少量代码便可进行分布式计算加速优化,除此之外还有更为直观的可视化页面。全方位帮你调参,自动找到最优参数

651f84323b420ca615c03f5edc351a8f.gif

地址:https://github.com/optuna/optuna

最后

感谢您的阅读,以上就是第 67 期的所有内容。

找开源项目可以试试: HelloGitHub 小程序。

永远不要停下变强的脚步,我们下个月 28 号见!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/531166
推荐阅读
相关标签
  

闽ICP备14008679号