草庐IT

tonic-Rust

全部标签

文盘Rust -- 把程序作为守护进程启动

当我们写完一个服务端程序,需要上线部署的时候,或多或少都会和操作系统的守护进程打交道,毕竟谁也不希望shell关闭既停服。今天我们就来聊聊这个事儿。最早大家部署应用的通常操作是“nohupxxxx&”,别说像weblogic或者其他java容器有启动脚本,里面其实也差不多;很喜欢nginx的-d参数,或者像redis配置文件里可以指定是否以守护进程启动。看起来很优雅。那么,使用rust写一个服务端程序能不能优雅的使用一个参数指定应用daemon模式启动,同时使用stop方式优雅的停机呢?我们通过一个例子来说说基本的实现方式。实例代码依然集成在[interactcli-rs](https://g

Rust Aya 编写 eBPF 程序

本文地址:https://www.ebpf.top/post/ebpf_rust_aya1.前言Linux内核6.1版本中有一个非常引人注意的变化:引入了对Rust编程语言的支持。Rust是一种系统编程语言,Rust通过提供非常强大的编译时保证和对内存生命周期的明确控制。在内核开发中引入Rust语言,将会为内核开发的早期带来更多的安全保障。eBPF是在内核中基于事件运行用户自定义程序的技术,其验证器机制可以保障运行在内核中eBPF程序的安全性。Rust与eBPF有着一个共同的目标:保证内核安全,只是两者侧重的维度有所不同。尽管使用Rust编写eBPF程序多数情况下都需要通过不安全的方式在内核进

Rust Aya 编写 eBPF 程序

本文地址:https://www.ebpf.top/post/ebpf_rust_aya1.前言Linux内核6.1版本中有一个非常引人注意的变化:引入了对Rust编程语言的支持。Rust是一种系统编程语言,Rust通过提供非常强大的编译时保证和对内存生命周期的明确控制。在内核开发中引入Rust语言,将会为内核开发的早期带来更多的安全保障。eBPF是在内核中基于事件运行用户自定义程序的技术,其验证器机制可以保障运行在内核中eBPF程序的安全性。Rust与eBPF有着一个共同的目标:保证内核安全,只是两者侧重的维度有所不同。尽管使用Rust编写eBPF程序多数情况下都需要通过不安全的方式在内核进

Rust 如何实现 async/await

目录FutureWake&Context为什么需要executor?什么是waker?async/awaitExecutorWakerstruct到ArcWaketraitFuturesUnordered单线程executor线程池executor总结异步编程在Rust中的地位非常高,很多crate尤其是多IO操作的都使用了async/await.首先弄清楚异步编程的几个基本概念:FutureFuture代表一个可在未来某个时候获取返回值的task,为了获取这个task的执行状况,Future提供了一个函数用于判断该task是否执行返回。traitFuture{typeOutput;fnpol

Rust 如何实现 async/await

目录FutureWake&Context为什么需要executor?什么是waker?async/awaitExecutorWakerstruct到ArcWaketraitFuturesUnordered单线程executor线程池executor总结异步编程在Rust中的地位非常高,很多crate尤其是多IO操作的都使用了async/await.首先弄清楚异步编程的几个基本概念:FutureFuture代表一个可在未来某个时候获取返回值的task,为了获取这个task的执行状况,Future提供了一个函数用于判断该task是否执行返回。traitFuture{typeOutput;fnpol

Rust for Rustaceans: Idomatic Programming for Experienced Developers Chap.2 Types

翻译的内容如果有不理解的地方或者是其他的差错,欢迎后台回复讨论。类型在内存中的表示Rust中的每一个值都有自己的类型(Type)。在这一章中,我们将会看到Rust中的类型服务于许多不同的目的,但其中最基本的一个目的是告诉你如何翻译并理解内存中的比特。举例来说,比特串0b10111101(十六进制下为0xBD)本身并不能携带任何信息,只有当你赋予它一个特定的类型时它才有了含义:如果我们以u8为类型来翻译这一串比特,那么它代表着数字189;如果以i8为类型来翻译,那么它的含义变为了数字-67。当你定义自己的类型时,编译器将负责决定如何在内存中表示该类型的各个部分。你所定义的结构体(Struct)中

Rust for Rustaceans: Idomatic Programming for Experienced Developers Chap.2 Types

翻译的内容如果有不理解的地方或者是其他的差错,欢迎后台回复讨论。类型在内存中的表示Rust中的每一个值都有自己的类型(Type)。在这一章中,我们将会看到Rust中的类型服务于许多不同的目的,但其中最基本的一个目的是告诉你如何翻译并理解内存中的比特。举例来说,比特串0b10111101(十六进制下为0xBD)本身并不能携带任何信息,只有当你赋予它一个特定的类型时它才有了含义:如果我们以u8为类型来翻译这一串比特,那么它代表着数字189;如果以i8为类型来翻译,那么它的含义变为了数字-67。当你定义自己的类型时,编译器将负责决定如何在内存中表示该类型的各个部分。你所定义的结构体(Struct)中

亚马逊推出类TikTok功能、PHP8.2.0发布、GCC即将加入对Rust的支持 | T资讯

一、商业圈1、亚马逊发力社交电商:推出类TikTok功能亚马逊将推出一款类似于TikTok的服务,便于消费者从精选的图片和视频中购买商品。这个名为Inspire的新功能将于12月初面向部分美国用户推出,随后几个月向全美用户开放。Inspire服务以灯泡型图标的形式出现在应用中,要求用户选择20个以上的兴趣分类,包括化妆品、宠物和游戏等,然后据此为其定制内容,向用户推荐其他用户、品牌和达人分享的商品。亚马逊购物总监奥利弗・麦森奇(OliverMessenger)说:「用户只要点击几下就可以探索新的产品,或者得到新的购物灵感,这一切都是根据他们的兴趣量身定制的,然后便可在亚马逊上购买这些商品。」亚

亚马逊推出类TikTok功能、PHP8.2.0发布、GCC即将加入对Rust的支持 | T资讯

一、商业圈1、亚马逊发力社交电商:推出类TikTok功能亚马逊将推出一款类似于TikTok的服务,便于消费者从精选的图片和视频中购买商品。这个名为Inspire的新功能将于12月初面向部分美国用户推出,随后几个月向全美用户开放。Inspire服务以灯泡型图标的形式出现在应用中,要求用户选择20个以上的兴趣分类,包括化妆品、宠物和游戏等,然后据此为其定制内容,向用户推荐其他用户、品牌和达人分享的商品。亚马逊购物总监奥利弗・麦森奇(OliverMessenger)说:「用户只要点击几下就可以探索新的产品,或者得到新的购物灵感,这一切都是根据他们的兴趣量身定制的,然后便可在亚马逊上购买这些商品。」亚

写Rust,有三大内伤

​作者|RomanKashitsyn编译|言征Rust是语言设计领域的一个热点。它允许我们用简洁、可移植、有时甚至是漂亮的代码构建高效、内存安全的程序。然而,凡事都有两面,不会到处都是玫瑰和阳光。内存管理的细节通常会让开发工作陷入抓狂,并使代码比“高级”编程语言(如Haskell或OCaml)中的,更丑陋、更重复。最让人恼怒的是,在几乎所有情况下,这些问题都不是编译器的缺陷,而是Rust团队设计选择的直接后果。《编程元素》一书中,作者AlexanderStepanov写到:“函数式编程处理值;命令式编程处理对象。”本文通过丰富的案例详细介绍了如果你以函数式编程思维来处理Rust,它会有多令开发