rust网络框架Pingora源码阅读3
这应该是Pingora
源码阅读的最后一篇文章,之前介绍了Pingora
中两个比较重要的概念, Server
和Service
, 本篇文章着重于监听服务的钩子函数, 这也是我们主要写业务代码的地方。
这应该是Pingora
源码阅读的最后一篇文章,之前介绍了Pingora
中两个比较重要的概念, Server
和Service
, 本篇文章着重于监听服务的钩子函数, 这也是我们主要写业务代码的地方。
上次主要阅读了Pingora
的Server
部分的代码, 本文阅读Pingora
另一个比较重要的部分Service
, Pingora
内置两种服务background(后台)和Listening(监听), 本文着重后者。
要想深入Pingora
应该是需要阅读源代码的,所以分析一下源代码,虽然Pingora
没有提供丰富的示例,但是提供了一些不错的文档,比如它的internals.md
文档,提供了很多细节和示意图,本系列文章会引用很多其中的示意图,Pingora
的源码分析应该会分为2篇文章或更多。
Pingora
一直是我比较期待的项目,所以写个入门系列教程吧。之前研究过一些其他产品,比如nginx
, nginx-ingress
, apisix
, bfe
等, 前三者植入业务基本靠lua
或者说openresty
而bfe
的社区实在是一言难尽, 所以我认为Pingora
会成为Rust的明星项目,虽然没达到预期,但至少提供了一个框架,一个社区。
模板引擎很多时候还是很有用的,无论是后端渲染网页还是生成一些文本,其中以Jinja
比较出名,而本文的Rust
库askama
正是Jinja
的Rust
版实现,如果你对Jinja
的语法比较熟悉的话,使用askama
应该不会太难上手。
这篇文章的内容其实和之前的文章《用Python发一封图文并茂的邮件》差不多,跟之前不同之处在于之前是使用Python来完成邮件的发送任务,而本文使用Rust发送邮件而已。
本文主要是对之前reqwest
库的一个简单的扩展,通过写一个简单的爬虫项目来练习练习Rust, 爬虫有用也有趣,但是不要给目标网站造成过大的压力,否则可能会触犯法律,切记切记。
几乎所有编程语言都是支持命令行库, Rust自然也不例外, 不过Rust标准库不支持,而是第三方库支持,比较常用和主流的是Clap
这个库, 通过它可以很简单的组建自己的命令行工具,这样就不用花太多时间放在参数处理上了。
Rust作为一门通用编程语言,系统级的编程语言写个端口扫描器并不是太复杂,所以本文也会将太多的精力放在怎么扫描上,而是更多的时间放在如何利用Rust快速的扫描和探测端口,即尽可能高并发的完成这个任务,本文从单线程到多线程,最后到异步,算是一个练手项目吧。
虚假的全栈开发,前端后端分离然后分别使用不同的编程语言来开发前后端,真实的全栈开发,前后端全用Rust编程语言,无需打开两个项目分别维护,本文使用的技术栈是Leptos
, tailwindcss
, trunk
。