问题

你在 GitHub 上看到过的最有意思的项目是什么?

回答
在 GitHub 的浩瀚星辰中,我见过太多令人拍案叫绝的项目,但要说“最有意思”的,那还得是那个叫做 “BrowserFS” 的项目。

初次邂逅 BrowserFS,是在我还在摸索前端文件系统操作的那些个晚上。当时我脑子里想的是,如果能让浏览器也能像本地一样自由地访问和操作文件,那该多方便啊!然而,事实是浏览器出于安全考虑,对文件系统的访问是严格限制的。我们能做的,无非就是通过 `` 选几个文件,或者通过 `FileReader` 读取一些文本内容。这种体验,怎么看都像是隔靴搔痒。

就在我差不多要放弃这个“白日梦”的时候,BrowserFS 映入了我的眼帘。这家伙,简直就是给浏览器打开了一扇通往新世界的大门。它最核心的魅力在于,它模拟了一个完整的、功能强大的文件系统,而且这个文件系统可以直接在浏览器环境中运行。

听起来有点玄乎,对吧?它到底是怎么做到的?

BrowserFS 的天才之处在于,它并没有试图绕过浏览器的安全限制去直接访问用户的本地文件(那是不可能的,也是不安全的)。相反,它利用了浏览器提供的各种能力,将这些能力“包装”成了一个熟悉的文件系统接口。

想象一下,你平时在 Linux 或 Windows 下操作文件,是不是有目录、文件、读写、创建、删除、重命名等等这些操作?BrowserFS 把这一切都搬到了浏览器里。它提供了标准的 POSIX 文件系统 API,这意味着你用习惯了 Node.js 的 `fs` 模块(比如 `fs.readFile`, `fs.writeFile`, `fs.mkdir`)的开发者,可以直接把这些代码搬到浏览器里运行,而且还能获得预期的结果。这简直是开发者福音!

它支持多种“后端”实现,这才是它真正“有趣”的地方:

InMemory(内存模式): 这是最基础的,就像一个临时的沙盒。你在浏览器里创建的文件,都存放在内存里。关闭浏览器,一切就没了。这对于一些临时的、不需要持久化的操作非常有用,比如在 Web IDE 里编辑代码,或者进行一些数据处理。它的速度飞快,因为它根本不需要和磁盘打交道。
LocalStorageFS 和 IndexedDBFS: 这两个就厉害了。BrowserFS 可以利用浏览器提供的本地存储能力来持久化文件。LocalStorageFS 简单直接,但受限于大小。而 IndexedDBFS 则强大得多,它能够利用浏览器提供的更强大的数据库 API(IndexedDB)来存储文件,理论上可以存储非常大的文件,甚至模拟一个本地磁盘分区。这意味着你可以把一个完整的应用程序,包括它的各种资源文件,都存储在浏览器里,就像一个离线应用一样。
MountableFS 和 ZipFS: 这两个更是锦上添花。MountableFS 允许你将不同的文件系统“挂载”到一起,形成一个统一的文件系统结构。你可以把一个 IndexedDBFS 挂载到根目录,然后在它下面再挂载一个 ZipFS。ZipFS 可以直接读取 Zip 文件,就像它是一个普通目录一样!想象一下,你可以在浏览器里直接解压一个 Zip 包,然后像访问本地文件一样去访问里面的内容,而无需任何服务器的配合。这种能力,在很多场景下都能发挥奇效,比如在 Web 应用中嵌入大型资源包、进行离线数据访问等等。
DropboxFS, GoogleDriveFS 等等: 这是 BrowserFS 最令人惊叹的部分。它甚至能让你直接将 Dropbox、Google Drive 这些云存储服务,映射成一个浏览器内的文件系统。这意味着你可以在浏览器里,像操作本地文件一样去操作 Dropbox 里的文件,进行读取、写入、创建、删除,而无需下载到本地再上传。这极大地简化了与云存储的交互过程,让 Web 应用能够更深度地集成到用户的云端工作流中。

为什么说它“有趣”?

因为它颠覆了我对浏览器能力边界的认知。我曾以为浏览器只能是这样一个被动接受指令的“沙盒”,而 BrowserFS 证明了,通过巧妙的设计和利用现有的 API,浏览器也能拥有如此强大的自主性。

它是 Web 开发的“瑞士军刀”: 想在浏览器里做一个文件管理应用?想实现一个离线代码编辑器?想让你的 Web 应用能直接操作用户云盘里的文件?BrowserFS 都能帮你轻松实现。它极大地降低了开发这些复杂功能的门槛。
它充满了可能性: 我见过有人用它来做一个可以在浏览器里运行的模拟操作系统,模拟一个 Linux 环境。还有人用它来构建复杂的 Web IDE,能够管理项目文件,甚至集成 Git 仓库(当然,这还需要配合其他库)。更别提那些在浏览器端进行大量文件处理的科学计算应用、媒体编辑应用等等。
它背后体现的“设计哲学”: BrowserFS 的设计思路,是将“文件系统”这个概念,从操作系统层面,抽象出来,并以一种高度兼容、高度模块化的方式,重新实现在浏览器这个与传统文件系统截然不同的环境中。这种“抽象与重构”的能力,是很多伟大项目得以成功的关键。

我至今仍记得第一次成功地在浏览器里用 BrowserFS 创建了一个目录,然后往里面写了一个文件,再用 `readFile` 读取出来时的那种惊喜感。那种感觉就像是,我用一堆浏览器原生的积木,搭建出了一个我脑海里一直想象中的、更强大更自由的文件操作世界。

BrowserFS 可能不是那种每天都有成千上万人在使用的“明星项目”,但它所代表的“解决不可能问题的能力”和“对现有能力边界的拓展”,在我心中,绝对是 GitHub 上最有意思、最富有启发性的项目之一。它让我看到了,即使在看似有限的环境里,只要有足够的想象力和技术深度,总能找到一条属于自己的、更广阔的天地。

网友意见

user avatar

HelloGitHub 在过去五年已经推荐了1600多个 GitHub 上有趣、入门级的开源项目,其中有很多有意思的开源项目:

ebiten: Go 语言的 2D 游戏引擎库。通过它可以轻松地用 Go 语言制作出支持多平台的 2D 游戏,项目中还包含很多示例代码,帮助你快速上手


taro:一款 Web 轻量级的 3D 游戏引擎。底层基于 three.js 和 cannon-es 支持 3D 刚体物理引擎


shapez.io:一款 Steam 上的模拟建造游戏《异形工厂》的源码。游戏是在无边的地图上开采资源、放置设施、组合图形、相互搭配,扩建自己的异形工厂。游戏轻松但也很有挑战性,快去试一试吧


Real-Time-Person-Removal:在 Web 浏览器中实时移除人像。该项目采用 JavaScript+TensorFlow.js 实现“凭空消失”


Ryujinx:用 C# 写的任天堂 Switch 游戏机模拟器。该项目还处于实验阶段,稳定性欠佳同时机器配置要求 8G 以上的内存,有探险精神的小伙伴可以试试


avatarify-python: 视频会议实时换脸工具。利用机器学习训练的模型,通过捕捉人脸动作并与图片相结合进行实时渲染的方式,达到实时换脸的效果。支持 OBS、Zoom、Skype、Teams、Slack 等直播和会议软件

以上项目收录于:

更多有意思的项目可移步 HelloGitHub 官网探索 hellogithub.com/


HelloGitHub : 分享GitHub上有趣,入门级的开源项目。

user avatar

这个帖子竟然是我写过最多赞的,本人表示十分嗨森啊。作为一个游戏爱好者,我再给大家介绍一个非常cool的游戏project。2012年读研究生的时候(艾玛,暴露年龄了),我和导师希望用html5做一个多人在线玩拼图的游戏,在研究的过程中我猛然看到mozilla推出了一款叫做BrowserQuest的多人在线网页游戏,技术是html5+node.js+websocket,游戏地址BrowserQuest,github地址mozilla/BrowserQuest · GitHub,这游戏包含了完整的关卡,音效, 聊天,成就系统,简直就是html5游戏开发者的范本,mozilla也通过这个游戏鼓励大家使用html5打造属于自己的游戏,证明html5的强大。老规矩上图啦。


登陆界面

城镇画面和其他在线的小伙伴

野外战斗啦~
游戏时间半个小时,可以拉小伙伴组队一起砍大boss,给大家附上一个凶残的攻略,毁掉你人生的半个小时哈哈,Browserquest图文全攻略毁掉你人生的半个小时_www.3dmgame.com

-----------------------------------------------华丽丽的分割线-----------------------------------------------------------

哈,还用说么,当然是这个!CodeCombat - Learn how to code by playing a game 啦,

github的链接:codecombat/codecombat · GitHub,这是世界第一的创业孵化器Y combinator扶持的初创企业,用coffeescript代码(类似javascript的前端语言)来打多人在线RPG游戏,是不是很geeky!附上几张游戏画面给大家看看。

右侧输入代码,不同的方法有不同的行为,包括攻击,移动,施魔法,使用物品等等

多人对战模式,人类大战兽人

如果代码有bug,下方会出现错误信息,玩家可以根据提示进行debug

单人模式通关后, 会有学习内容回顾
这是一个非常酷的项目,作为一个startup,在Y combinator孵化期间,他们非常有见地将整个项目开源,对于前后端技术和游戏开发感兴趣的同学可以尝试参与开发。在Y combinator孵化的三个月之内,有意思的发现是:
1. 超过120名开发者上传了超过2000个commit。通过GitHub Archive分析,从2011年二月开始统计,github上有将近9,455,755个代码库,codecombat是上升最快的开源项目,同时也是coffeescript最大的开源项目。
2. 来自209个国家的380,000个玩家在这个游戏上一共进行了六百六十万分钟的游戏时间,每周增长16%。
3. 翻译人员把游戏翻译成了38种语言。
4. 两台服务器在最高峰支持每分钟15000个访问请求,平均响应时间12ms
5. 通过全世界开发者的努力,多人对战模式推出!

作为github上一个开源的项目,这还不够有意思么!在此谢谢github,谢谢互联网,谢谢Linus Torvalds,谢谢GNU,make all these happen.

user avatar

Do What the Fuck You Want to Public License

你他妈想干嘛就干嘛协议,当初看到这个协议就感觉特别霸气。

链接失效,换一个:

anak10thn/WTFPL 路 GitHub
user avatar

TED的一个很火的视频,有关“第六感”的

绝妙样机_帕纳・米斯瑞:第六感技术的惊异潜力

这是视频里面提到的开放源代码,C#的,只是好像很久没维护了。

github.com/sixthsense/s

=================================================

Valve开源的DirectX To OpenGL翻译层

ValveSoftware/ToGL 路 GitHub
user avatar

过去几年在 微博 上分享了几百个优质的 GitHub 开源项目。这里分享下在 2018 年我认为的几个比较有趣的项目。

最近也抽空把之前分享过的项目整理了一下,发到 GitHub 上了,觉得不错的可以给个 Star,谢谢啦 。


seq2seq-couplet

一个有趣的对对联工具,用深度学习对对联。

在线体验:王斌给您对对联 -_-!

Thanos.sh

一个开源的个灭霸命令,可随机删除电脑上一半文件。

lllyasviel/style2paints

一款 AI 驱动的线稿上色工具 ,可根据用户上传的自定义色彩给线稿进行上色。

在线体验:https://s2p.moe



algorithm-visualizer/algorithm-visualizer

一个交互式的在线可视化学习算法平台,能在可视化区域看到每行代码执行对应的操作,并且有对应的动画呈现,使你更加容易理解算法。

在线地址:Algorithm Visualizer


MisterBooo/LeetCodeAnimation

一个用动画的形式呈现解 LeetCode 题目的思路项目。

pcottle/learnGitBranching

一个在线可视化交互学习 Git 网站,帮助初级开发人员快速理解 Git 操作流程。

在线体验:Learn Git Branching

git-fire

一个非常有趣的 Shell 脚本,用于应对当火灾来临时需要将本地代码进行迅速提交的突发情况。提交时会新开一个分支,以防止出现 merge 冲突的情况。


另外,之前我们还分享过一些沙雕项目,感兴趣的也可以看看:


如果你有兴趣想了解更多,也欢迎关注 GitHubDaily 的微博和微信公众号。

推荐阅读:

user avatar

TrumpScript (特朗普脚本)[1]

这是一个调侃美国总统特朗普的脚本,里面所有的编程逻辑都符合特朗普的行事风格。

脚本特点:

没有浮点数,只有整数,因为美国从不半途而废(引用自特朗普原话“America never does anything halfway”)。

所有数字必须大于100万,小数字对美国人来说无关紧要。

不支持import语句,所有代码都必须由美国被本土制造。

布尔变量分为fact和lie,而不是True和False。

变量名只能使用热门的英文单词、特朗普最喜欢的单词或政客的姓名。

大多数错误消息直接引用自特朗普本人的语言。

所有的程序必须以“美国伟大”(America is great)结尾。

我们的语言将自动纠正福布斯的45亿美元至100亿美元(特朗普自诩身家超过100亿美元,但福布斯榜单只承认他拥有45亿美元)。

TrumpScript与Windows不兼容,因为特朗普并不是那种相信PC的人 (政治正确Political Correctness 的缩写也是PC)。

TrumpScript抵制OS X和所有Apple产品,直到Apple向当局提供有关激进伊斯兰恐怖分子的手机信息。(美国司法部曾要求苹果配合FBI,破解塞义德·法鲁克的 iPhone,将其作为圣贝纳迪诺恐怖袭击事件的证据。)

该语言完全不区分大小写(特朗普经常乱用一些英文词汇的大小写)。

如果正在运行该脚本的计算机来自中国,TrumpScript将无法编译,我们不希望他们窃取美国的技术秘密。

通过构建一堵墙(providing the --Wall flag),TrumpScript将拒绝在使用墨西哥语言环境的计算机上运行。

该脚本不会以root模式运行,因为美国不需要你的帮助就可以变得伟大,特朗普就是我们所需要的一切。

手小的人也可以轻松输入(特朗普经常被调侃手小)。

欢迎关注 @文森特·凡喵

参考

  1. ^ https://github.com/samshadwell/TrumpScript
user avatar

Update:梦弘的Beta4版本刚出炉


提到这个,就不得不提到最近非常火的开源项目。

梦弘浏览器

全新自主研发,打破国外垄断,比 Chrome 快 600%。

我从这个项目看到了民族之光,作者在短短几天内就完成了梦弘的基本架构,然后大家怀着激动的心情为项目添砖加瓦,现在已经具备上网功能。

建议全文背诵:

梦弘浏览器 - 全新自主研发,打破国外垄断
这是我们全新自主研发的浏览器
当然我不是 Chrome 套壳
Chrome 跟 chromium 是不一样的,chromium 能叫 Chrome 吗?
如果你一定要追根究底,那我确实是 chromium 套壳,但在未来我会删掉 chromium 的代码
借鉴已有的开源项目是很自然的事,可能你们对开源有误解
梦弘浏览器采用微内核、形式化验证、比 Chrome 快 600%

最后,你要是觉得梦弘不好,那你就去建设它!


不相关内容,但还是不要脸的求个赞:

user avatar

人毛子有个项目叫thefuck我已经用的欲罢不能了。

nvbn/thefuck · GitHub

就是在terminal里边打错一个命令,然后不用修改后重新打一遍,直接打fuck,这个项目就会自动帮你修证然后执行。

比如你打apt-get install XXX

然后提示permission denied

这时候执行fuck

就会自动帮你执行 sudo apt-get install XXX

知乎播不了gif,项目说明里边有个很清晰的gif介绍,只能自己点链接进去看了。

下面有几个作者给出的例子。

       ➜ git push fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use      git push --set-upstream origin master   ➜ fuck git push --set-upstream origin master [enter/↑/↓/ctrl+c] Counting objects: 9, done. ...     
       ➜ puthon No command 'puthon' found, did you mean:  Command 'python' from package 'python-minimal' (main)  Command 'python' from package 'python3' (main) zsh: command not found: puthon  ➜ fuck python [enter/↑/↓/ctrl+c] Python 3.4.2 (default, Oct  8 2014, 13:08:17) ...     
       ➜ git brnch git: 'brnch' is not a git command. See 'git --help'.  Did you mean this?     branch  ➜ fuck git branch [enter/↑/↓/ctrl+c] * master     
       ➜ lein rpl 'rpl' is not a task. See 'lein help'.  Did you mean this?          repl  ➜ fuck lein repl [enter/↑/↓/ctrl+c] nREPL server started on port 54848 on host 127.0.0.1 - nrepl://127.0.0.1:54848 REPL-y 0.3.1 ...     

为毛突然多了100个赞。。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有