VXiaoZhi Blog

「离开世界之前 一切都是过程」

trpc/brpc/grpc协议设计

trpc/brpc/grpc协议设计

trpc tRPC协议设计 trpc.proto grpc 四种通信模式实现​​: ​- ​Unary RPC​​:单一请求对应单一响应(类似传统 HTTP 请求)。 ​​- Server Streaming​​:服务端通过同一流发送多个响应。 ​​- Client Streaming​​:客户端通过同一流发送多个请求。 ​​- Bidirectional Streami...

部署postfix服务进行发送邮件

部署postfix服务进行发送邮件

概述 若只需发送邮件(如监控报警、事务通知),无需接收邮件,可采用 ​​Postfix​​ 或 ​​SSMTP​​ 的极简配置,本文介绍如何部署​​Postfix​​ 服务进行发送邮件。 如果需要收发同时支持, 可采用 iRedMail 部署. 以下是 Postfix 邮件服务器部署的标准化流程,涵盖从安装到安全加固的完整步骤,适用于生产环境: 一、基础部署流程 1. 环境准备...

Markdown 转换为 HTML 的golang开源项目

Markdown 转换为 HTML 的golang开源项目

在 Go 语言生态中,有几个优秀的开源项目可以将 Markdown 转换为 HTML。以下是常见的工具和库: Goldmark GitHub: https://github.com/yuin/goldmark 特点: 高性能、符合 CommonMark 标准。 支持扩展(如表格、任务列表、数学公式等)。 被许多知名项目(如 Hugo 静态站点生成器)使用。 提供 P...

js模板引擎Pug

js模板引擎Pug

Pug 是一个用 JavaScript 实现的高性能的模板引擎,支持 Node.js 和浏览器运行环境,其灵感来自 Haml 项目。 曾用名 “Jade” 本项目曾用名叫 “Jade”。然而,我们发现 “Jade” 是一个已经被注册的商标,因此需要给项目起一个新名字。经过项目维护团队的讨论,我们将名字改为了 “Pug”。从版本 2 开始,”pug” 成为了官方软件包的名称。 如果你的软...

Go语言Web框架:Beego

Go语言Web框架:Beego

Beego框架概述 Beego是一个用Go语言开发的全栈MVC框架,由国人谢孟军(Asta Xie)开发并维护。它借鉴了Python的Django和Flask等框架的设计思想,同时结合了Go语言的特性,为开发者提供了一套完整的Web开发解决方案。 Beego自2012年发布以来,已经成为Go生态中最受欢迎的Web框架之一,被广泛应用于各种规模的Web应用开发中。 基于 beego 的应...

基于boost.asio的WebSocket类库

基于boost.asio的WebSocket类库

zaphoyd/websocketpp WebSocket++ github 具有以下特点: Header Only的跨平台 WebSocket 库 网络 IO 基于 Boost::asio 实现 由于boost::asio 的 io_context 使用了线程存储,所以在 M:N 的协程模式(fiber) 下调用需格外小心。最好是采用 1:N 的协程。 当服务作为...

boost.asio 网络编程

boost.asio 网络编程

参考 boost.asio 网络编程 C++ 网络编程 asio 使用总结 基于 Boost Asio 的 C++ 网络编程 Boost.Asio看这一篇就够了

html5之语义化标签

html5之语义化标签

语义化标签 在[HTML5]标准中,新加了几个用于增添页面语义的标签,这些标签有:article、section、nav和aside等。与别的大多数标签不同,浏览器在解释渲染这些标签的时候仅仅把它们作为普通的div块级元素来进行处理,不会添加任何额外的展现逻辑;也即,这些标签仅用于增添语义。对于Web开发人员而言,使用这些标签的实际意义主要有2点:搜索引擎优化(SEO),以及增加页面的可用...

trpc微服务寻址方案设计

trpc微服务寻址方案设计

服务命名 tRPC在服务命名上定义了以下3个纬度信息: app名(应用名),表示某个业务系统的名称,用于标识某个业务下不同服务模块的一个集合; server名(模块名),表示具体服务模块的名称,一般也称为模块的进程名称; service名,表示具体服务提供者的名称,一般使用proto文件定义的Service名称; 其中app.server 的组合在全局上要具备唯一性。 ...

通知推送服务方案

通知推送服务方案

Bark Backend of Bark ntfy.sh ntfy.sh