分类 开源推荐 下的文章

https://github.com/neovim/neovim

Vim 很多人都用过,但会写 VimL 插件的人并不多。Neovim 增强了可扩展性,支持用各种语言编写插件,还内置了一个 Language Server Protocol (LSP) 客户端(仅 nightly)。这促成了 telescope.nvim 等依赖于 LSP 的插件,也使得很多 GUI 编辑器能集成上一个强大的 Vim 内核1

https://github.com/fluent/fluent-bit

可以看作用 C 重写的 Fluentd,功能暂时还不够多,核心部分也还没有利用上多线程。当然 C 的内存安全问题也会影响 Fluent Bit,开发者需要下很大功夫才能保证内存安全。

缺点不少为什么还是要推荐一下它呢?其实败也 C,成也 C。尽管 C 有不少缺点,但作为最接近机器和 POSIX 内核的语言,Fluent Bit 的潜力还是很大的。

  • 性能:通过异步 I/O 性能已经~达到 Node.js 的水平~很不错了,正在开发中的多线程模式能进一步解决性能瓶颈。
  • 可维护性:代码非常规范,可读性不错。
  • 可靠性和数据完整性:作为核心卖点之一,开发者还是很重视这两方面的问题的。实在不行直接上系统调用自己实现,C 可没有其他语言那么多顾虑。
  • 可扩展性:简单需求 Lua 解决,复杂的也支持用 C、WebAssembly 和 Go 写自定义插件,当然使用 Go 和 Lua 都有一定性能损耗。注意 Go 只能用于输入和输出插件,WebAssembly 只能用于输入和过滤器插件,C 的话都可以。