将传统应用带入浏览器的开源先锋「GitHub 热点速览」

github · 浏览次数 : 0

小编点评

本期 GitHub 热点速览主要介绍了以下几个开源项目: 1. WebVM:一个运行在浏览器里的 C/C++ 编译器,可以让用户在浏览器中运行 Linux 虚拟机。 2. BunkerWeb:一个开源的 Web 应用防火墙,可以无缝集成至现有环境(Linux、Docker、K8s 等),提供简单易用的 Web 界面,保护网站、API 和 Web 应用。 3. Wretch:一个轻量且直观的 fetch 库,提供通俗易懂的网络请求 API,简化网络请求错误处理和序列化,压缩后仅 2KB 大小,支持主流浏览器并兼容 Node.js。 4. LitGPT:一个一站式的 LLM 开发和部署工具,使用 Python 编写,提供了 20 多种 LLMs 的预训练、微调和部署的工具。 5. GraphRAG:一个微软开源的基于知识图谱的检索增强型生成(RAG)系统,利用大型语言模型生成知识图谱,增强 LLMs 的输出结果。 此外,还提到了 HelloGitHub 网站上的热门开源项目,包括浏览器控制多台 Android 设备的平台 stf 和优化 React 组件性能的工具 million。 最后,作者分享了全身心投入 HelloGitHub 官网的国际化工作的经历,并感谢所有参与这个项目的朋友们。

正文

现代浏览器已经不再是简单的浏览网页的工具,其潜能正在通过技术不断地被挖掘和扩展。得益于 WebAssembly 等技术的出现,让浏览器能够以接近原生的速度执行非 JavaScript 语言编写的程序,从而打开了浏览器的“潘多拉魔盒”。

开源组织 Leaning Technologies 正是这一方面的先锋,他们开发的 Cheerp、CheerpJ 和 CheerpX 等开源项目,使 C/C++、Java、Flash 和 x86 程序能够在浏览器中流畅地运行,它们正在逐步打破传统桌面应用程序和 Web 应用之间的“壁垒”。

  • Cheerp:运行在浏览器里的 C/C++ 编译器
  • CheerpJ:运行在浏览器里的 Java 虚拟机和运行时环境
  • CheerpX:运行在浏览器里的 x86 虚拟机

比如本周的开源热搜项目,基于 CheerpX 引擎的 WebVM 开源项目,它支持用户在浏览器中运行完整的 Linux 环境,无需下载和安装。开源的 Web 应用防火墙 BunkerWeb,让你的 Web 默认配置变得安全。极小的 fetch 封装库 Wretch,让前端请求数据更加轻松惬意。在浏览器里控制多台 Android 设备的平台 stf,优化 React 组件性能的工具 million 也是让人眼前一亮。

最后是一周涨了近 1w Star 微软开源的新型 RAG 框架 GraphRAG 和 LLM 一站式开发和部署工具 LitGPT。

  • 本文目录
    • 1. 开源热搜项目
      • 1.1 在浏览器中运行 Linux 虚拟机:WebVM
      • 1.2 开源的 Web 应用防火墙:BunkerWeb
      • 1.3 轻量且直观的 fetch 库:Wretch
      • 1.4 一站式的 LLM 开发和部署工具:LitGPT
      • 1.5 微软开源的 RAG 框架:GraphRAG
    • 2. HelloGitHub 热评
      • 2.1 浏览器控制多台 Android 设备的平台:stf
      • 2.2 优化 React 组件性能的工具:million
    • 3. 结尾

1. 开源热搜项目

1.1 在浏览器中运行 Linux 虚拟机:WebVM

主语言:JavaScriptStar:3.5k周增长:600

该项目可以让用户在浏览器中运行 Linux 虚拟机,无需服务器、完全客户端的虚拟环境。它基于 CheerpX 虚拟化引擎,提供了一个安全、沙盒的 x86 虚拟环境,可运行二进制文件、命令行工具、文本编辑器、编译 C/C++ 程序和 Python 等语言的脚本,登录后还能访问互联网,适用于演示和快速访问 Linux 开发环境等场景。

GitHub 地址→github.com/leaningtech/webvm

1.2 开源的 Web 应用防火墙:BunkerWeb

主语言:PythonStar:4.9k周增长:1.1k

该项目是用 Python 开发的 Web 应用防火墙,可以无缝集成至现有环境(Linux、Docker、K8s 等)。它基于 Nginx 构建、默认配置安全,拥有简单易用的 Web 界面,支持自动配置 HTTPS A+ 评级、安全 Header 和丰富的插件系统,可检测常见的攻击模式、限制访问、防止机器人和爬虫等恶意访问,保护你的网站、API 和 Web 应用。

GitHub 地址→github.com/bunkerity/bunkerweb

1.3 轻量且直观的 fetch 库:Wretch

主语言:TypeScriptStar:4.6k

这是一个极小、类型安全、围绕 fetch API 构建的网络请求封装库。它提供了通俗易懂的网络请求 API,简化了网络请求错误处理和序列化,同时压缩后仅 2KB 大小,支持主流浏览器并兼容 Node.js,适用于各种前端 HTTP 请求的场景。

wretch("anything")
  .get()
  .notFound(error => { /* ... */ })
  .unauthorized(error => { /* ... */ })
  .error(418, error => { /* ... */ })
  .res(response => /* ... */)
  .catch(error => { /* uncaught errors */ })

GitHub 地址→github.com/elbywan/wretch

1.4 一站式的 LLM 开发和部署工具:LitGPT

主语言:PythonStar:8.6k周增长:300

该项目是一款用 Python 编写的提供了 20 多种 LLMs 的预训练、微调和部署的工具。它可以通过 Pyhton 库或者命令行的方式使用,对模型进行微调、预训练、评估和部署服务等操作,支持自动从 HF 下载模型、自定义数据集、性能优化、降低内存要求(precision)等功能,以及 LoRA、QLoRA、Adapter 等多种微调方法。

from litgpt import LLM

llm = LLM.load("microsoft/phi-2")
text = llm.generate("Fix the spelling: Every fall, the familly goes to the mountains.")
print(text)
# Corrected Sentence: Every fall, the family goes to the mountains.       

GitHub 地址→github.com/Lightning-AI/litgpt

1.5 微软开源的 RAG 框架:GraphRAG

主语言:PythonStar:10k周增长:9k

该项目是由微软开源的基于知识图谱的检索增强型生成(RAG)系统,它利用大型语言模型生成知识图谱,将非结构化的文本转换为具有标签的知识图谱数据,从而增强 LLMs 的输出结果。相较于基准 RAG(向量相似性),基于知识图谱的 GraphRAG 在回答更抽象(关系)和总结性问题时表现更好。

GitHub 地址→github.com/microsoft/graphrag

2. HelloGitHub 热评

在这个章节,将会分享下本周 HelloGitHub 网站上的热门开源项目,欢迎与我们分享你上手这些开源项目后的使用体验。

2.1 浏览器控制多台 Android 设备的平台:stf

主语言:JavaScript

这是一个用 Node.js 开发的安卓智能设备群测工具,它提供了一个可远程调试多台 Android 设备的 Web 平台,支持 Android 手机和手表等设备。

项目详情→hellogithub.com/repository/af0868c1e3ea4d608e92849b405a8ddb

2.2 优化 React 组件性能的工具:million

主语言:TypeScript

该项目是专为 React 应用设计的优化编译器,它通过优化虚拟 DOM 和直接更新 DOM 节点,来减少页面更新的耗时,从而提升 React 组件性能,最高可达 70%,支持 VSCode 插件和命令行的使用方式。

项目详情→hellogithub.com/repository/406d03f678a64294b6c7e763a783b972

3. 结尾

我最近正全身心投入 HelloGitHub 官网的国际化工作中,这使得其他一些事情(HelloStar 等)不得不暂停。我之所以如此专注于国际化,是因为我深信这将提升 HelloGitHub 的全球影响力:它不仅能够让国内的开源项目通过一个国际化的平台被世界看到,也能让国外的开源项目作者理解并知道 HelloGitHub 在做的事情。

虽然这项工作充满挑战、进展缓慢,但我希望能够在「第100期」特别版发布之前完成它,让这一里程碑时刻更加有意义。

在此,我要向所有参与这个项目的朋友们(@雪峰、@塔咖...)表达感谢。正是因为有了你们的无私奉献和坚定支持,让这一切才得以可能。一个人或许可以走得很快,但一群人定会走得更远。HelloGitHub 渴望成为每位开源爱好者旅程中的伙伴,让我们一起穿越难关,共同迎接乌云背后的阳光!

以上就是本期「GitHub 热点速览」的全部内容,希望你能够在这里找到自己感兴趣的开源项目,如果你有其他好玩、有趣的 GitHub 开源项目想要分享,欢迎来 HelloGitHub 与我们交流和讨论。

往期回顾

与将传统应用带入浏览器的开源先锋「GitHub 热点速览」相似的内容:

将传统应用带入浏览器的开源先锋「GitHub 热点速览」

现代浏览器已经不再是简单的浏览网页的工具,其潜能正在通过技术不断地被挖掘和扩展。得益于 WebAssembly 等技术的出现,让浏览器能够以接近原生的速度执行非 JavaScript 语言编写的程序,从而打开了浏览器的“潘多拉魔盒”。

带你掌握利用Terraform不同数据源扩展应用场景

除了Terraform直接通过调用http provider接口获取数据外,还可以使用执行本地Shell/Python脚本,脚本内部实现调用外部接口获取数据,再将数据进行传入到Terraform进行使用。

6.3 应用动态内存补丁

动态内存补丁可以理解为在程序运行时动态地修改程序的内存,在某些时候某些应用程序会带壳运行,而此类程序的机器码只有在内存中被展开时才可以被修改,而想要修改此类应用程序动态补丁将是一个不错的选择,动态补丁的原理是通过`CreateProcess`函数传递`CREATE_SUSPENDED`将程序运行起来并暂停,此时程序会在内存中被解码,当程序被解码后我们则可以通过内存读写实现对特定区域的动态补丁。

驱动开发:内核封装TDI网络通信接口

在上一篇文章`《驱动开发:内核封装WSK网络通信接口》`中,`LyShark`已经带大家看过了如何通过WSK接口实现套接字通信,但WSK实现的通信是内核与内核模块之间的,而如果需要内核与应用层之间通信则使用TDK会更好一些因为它更接近应用层,本章将使用TDK实现,TDI全称传输驱动接口,其主要负责连接`Socket`和协议驱动,用于实现访问传输层的功能,该接口比`NDIS`更接近于应用层,在早期W

如何在微服务下保证事务的一致性

微服务架构是将单个服务拆分成一系列小服务,且这些小服务都拥有独立的进程,彼此独立,很好地解决了传统单体应用的上述问题,但是在微服务架构下如何保证事务的一致性呢?

传统的MVC开发模式和前后端分离开发模式

在当今互联网时代,移动应用和网页应用的发展极大地推动了前后端分离开发模式的兴起。传统的后端渲染方式已经不能满足用户对高性能和优质用户体验的需求,于是前后端分离逐渐成为了一种主流的开发模式。前后端分离开发模式通过将前端和后端的开发分离,极大地提高了开发效率和团队协作。前端开发人员专注于用户界面和交互逻...

14.5 Socket 应用组播通信

组播通信是一种基于UDP协议的网络通信方式,它允许发送方将消息同时传递给多个接收方。在组播通信中,发送方和接收方都会加入一个共同的组播组,这个组播组对应一个特定的IP地址,所有加入该组播组的主机都能够接收到发送方发送的消息。组播通信可以有效地减少网络流量和网络负载,因为在传统的点对点通信方式下,每个消息都需要单独传输到每个接收方,而在组播通信中,每个消息只需要传输一次,就可以同时传递给多个接收方。

城市健康云,打造大健康服务生态

摘要:数字技术的应用已经深入到医疗健康领域的方方面面,华为将持续携手广大生态伙伴,为城市打造更具安全、韧性、智能的健康服务平台,激发传统医疗模式不断创新、医院医疗服务水平不断提升,推进现代化健康、宜居城市的建设,让科技普济大众,让技术更有温度。 本文分享自华为云社区《城市健康云,打造大健康服务生态》

全面数字化时代,国有大型银行如何走好金融创新之路?

摘要:在金融创新压力下,传统集中式数据库的短板逐渐凸显出来,唯有加速核心系统的升级和转型,将应用迁移到更具有可持续演进支撑能力的数据库上,才能解决根本问题。 本文分享自华为云社区《全面数字化时代,国有大型银行如何走好金融创新之路?》,作者:GaussDB 数据库。 近些年来,金融行业数字化转型不断推

[转帖]TCP三次握手详解,滑动窗口,拥塞窗口,网络包路由过程,全连接队列,半连接队列

众所周知,网络分层有传统的OSI七层模型和后来的基于TCP/IP的四层模型: 那么在一次网络的传输过程中具体的流程是怎么样的,我们先从一个数据包的传输说起(以TCP为例): TCP协议根据上层应用提供的信息生成TCP报文 TCP报文在交由下面的IP层(网络层)进行处理,委托IP模块将TCP报文封装成