文档章节

七月新增开源项目:你学习的速度跟得上前端造轮子的速度吗?

编辑部的故事
 编辑部的故事
发布于 08/12 21:54
字数 1649
阅读 4755
收藏 13

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品。目前这些开源项目主要来源于编辑们的搜集和用户的投递,所以如果你有更好的开源项目推荐,欢迎积极投递。

戳这里查看投递软件的正确姿势 >>> https://www.oschina.net/question/2918182_2266982

Web 开发 — Web 不死!Web 永存!

fastpack/fastpack Fastpack —— 轻松快速打包 JavaScript 应用

如果你追前端轮子的速度足够快,那么你的孤独就追不上你。很遗憾,被巨大孤独感包围着的你,终究还是追不上前端造轮子的速度。

上个月,前端领域又诞生了一个新的“轮子” —— Fastpack,号称可以轻松快速打包 JavaScript 应用。它的目标是做到对于中型应用(约 1000 个模块)的打包时间小于 1000ms,增量重新打包时间低于 100ms。基准测试结果如下:

可以看到,与目前主流的打包工具 Webpack 和 Parcel 相比,Fastpack 的时间打包时间具有不小的优势,有兴趣的童鞋不妨尝试一下。不过会不会有童鞋尝试使用这个轮子之后,冒出“还不如我自己造个轮子”的念头?叫 Veryfastpack?

tokio-rs/tokio Tokio —— 使用 Rust 编写的快速可靠异步编程框架

目前看来,Rust 依然还只是一门小众的编程语言。不过 Rust 已经表示他们将会在今年发布一个重大版本 —— Rust 2018。所以它依然值得我们关注。Rust 是由 Mozilla 主导开发的一门现代系统编程语言,现阶段 Rust 定位的方向还是高性能服务器端程序开发,非常适合对性能要求较高的系统编程领域。

这里推荐的 Tokio 是使用 Rust 编写的异步编程框架,它将复杂的异步编程抽象为 Futures、Tasks 和 Executor,并提供了 Timer 等基础设施。Tokio 快速、可靠,且可扩展。

Tokio 是一个事件驱动的非阻塞 I/O 平台,用于使用 Rust 编程语言编写异步应用。在高层设计上,它提供了一些主要组件:

  • 多线程、工作窃取(work-stealing)的 task scheduler 。

  • 由操作系统的事件队列(epoll,kqueue,IOCP 等)支撑的 reactor 。

  • 异步 TCP 和 UDP 套接字。

这些组件提供构建异步应用所需的运行时组件。

hnes/libaco —— 一个极速的轻量级 C 非对称协程库

很少推荐关于 C 语言的开源项目,一是因为与其他语言相比,C 语言相关的开源项目比较少,再则就是优秀的 C 语言开源项目也不多。本次推荐的 libaco 是一个高性能的网络开发库,质量相当高,7月份开源发布出来的时候,曾登上过 Github Trending 排行榜。

作者对 libaco 的定义是一个极速的轻量级 C 非对称协程库(10 ns/ctxsw + 一千万协程并发仅耗内存 2.8GB ),相当耀眼的数据表现。下面简要介绍一下这个项目:

  • 除了一个生产级别的 C 协程库实现,还包含了一个详细的文档描述了如何实现一个 最快且正确 的协程库以及其严格的数学证明
  • 核心实现不超过 700 行代码,包含了一个协程库应该有的全部功能;
  • 在 AWS c5d.large 机器上的性能测试结果指出,一次协程间上下文切换仅耗时 10 ns (独立执行栈);
  • 用户在创建新的协程时,可以选择其拥有一个独占的执行栈,或者是与其它任意数量的协程一起共享一个执行栈;
  • 拥有极致的内存使用效率:一千万个协程并发执行仅消耗 2.8GB 的物理内存( tcmalloc, 每一个协程使用 120B 的复制栈)。

上文中的"最快"指的是在满足 Sys V ABI Intel386 或者 AMD64 约束下最快的上下文切换实现。

Funny OSS — 有趣的开源软件

browsh-org/browsh —— 基于文本的现代 Web 浏览器

Browsh 是一个纯文本浏览器,可以运行在大多数的 TTY 终端环境和任何 Web 浏览器。它能渲染现代浏览器所能渲染的任何东西:HTML5、CSS3、JS、视频甚至 WebGL。其主要目的是在远程服务器上运行,并通过 SSH/Mosh 或浏览器内的 HTML 服务进行访问,以显著降低带宽,从而提高浏览速度并降低带宽成本。

  

左:渲染为 TTY 模式;右:渲染为浏览器模式

有人不禁会问,为什么要用这么一个浏览器呢?须知道,世界上还有很多地方的网络环境不是那么好,对于带宽有限的他们,这类产品能很好地兼容内容和体验之间的矛盾,让互联网的便利普及更多的用户。

chubin/cheat.sh cheat.sh —— 一个只能在命令行访问的文档查询网站

cheat.sh 是一个网站,更是一个实用的速查工具。通过使用命令行执行 curl http://cheat.sh,便可快速查找任何编程语言的一些语法和关键字。

cheat.sh 具有以下这些功能特性:

  • 简洁的 curl/browser 界面

  • 涵盖 55 种编程语言,一些 DBMSes 和 1000 多个最重要的 UNIX/Linux 命令

  • 无需安装,随处可用

  • 超快,通常在 100 毫秒内即可返回答案

  • 可以直接在代码编辑器中使用,无需打开浏览器

本期的推荐到此结束,更多有趣有料的开源软件尽在开源中国社区等你来发现~!

最后,欢迎关注【开源中国】微信公众号(ID: oschina2013),获取更多技术干货和第一手开源资讯!

© 著作权归作者所有

共有 人打赏支持
编辑部的故事

编辑部的故事

粉丝 1200
博文 252
码字总数 445830
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(1)

haitaosoft
haitaosoft
击中痛点。。。。。
谈谈前端的一些学习经验

1、敢于表现自己   不是说要像销售一样可以口若悬河的介绍和推销自己,而是敢于把自己做的东西推荐给别人用。因为很多时候人都是有惰性的,如果你把你自己的东西推荐给别人使用,那么别人使...

subying
2016/11/20
356
0
干货 | 一份我的前端技术进阶指南

近十年来,前端的发展势头迅猛,每年都会出现不少新的技术和标准。「If you are not growing,then you are dying.」这句名言对于前端工程师同样适用。维持现状就是落后的开始,不断地学习才...

蒲公英开发者服务平台
08/02
0
0
我的2016:从野路子到正规军的前端养成记

2016年终于进入尾声啦,刚好也趁着@segmentfault社区举办的《回顾 2016,你都收获了什么?》活动,好好回顾一下我的2016年。 2016年发生的事情非常多,还是以时间为线索慢慢写起吧 一、结束实...

jrainlau
2017/11/29
0
0
MP实战系列(八)之SpringBoot+Swagger2

SpringBoot一个原则,爱好编程的朋友们都知道,那就是"习惯优于配置"。 今天一上来主要说的还是代码,个人比较喜欢来的实战系列的,不过有的时候还是比较偏重于理论,理论是造轮子的基础之一...

youcongtech
06/22
0
0
『No15: Go 实现 python 库 fake-useragent』

大家好,我叫谢伟,是一名程序员。 在未来人人都是手艺人。 传统的手艺人在圈子内创造影响力,在互联网时代,个人影响力不仅仅限于圈子内,互联网创造无限可能性。 好,今天的主题:作品意识...

谢小路
06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 自定义你的空间

通过对你的空间进行界面的自定义能够让你的空间更加出类拔萃。 如果你具有空间管理员权限,你可以修改你空间的颜色配色,添加你自己的空间标识,选择是否在你空间中显示边栏。或者你可以进入...

honeymose
今天
1
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部