coding到灯火阑珊

专注于技术分享,包括Rust、Golang、分布式架构、云原生等。

使用Rust构建IP嗅探器
在这篇文章中让我们学习如何构建一个基本的网络工具,该工具可以扫描指定IP地址上的端口,以查看哪些端口是打开的。
如何解决“future不能安全地在线程之间发送”的问题?
Rust应用程序通常使用异步库,如Tokio和Actix。这些库为异步I/O和并行计算等提供了有力的支持。然而,不同的异步库在一起使用时,有时会出现问题。
Rust:深入了解线程池
在某些情况下,你需要并发地执行许多短期任务。创建和销毁执行这些任务线程的开销可能会抑制程序的性能。解决这个问题的一个办法是建立一个任务池,并在需要时将它们从这个任务池中取出。
如何用Rust实现gRPC服务
在本文中,将展示如何使用Rust和Proto协议创建一个简单的gRPC服务。
一家硬件公司的Rust之旅
Oxide计算机公司以其在云计算领域的开创性方法而闻名,其目标是彻底改变云服务的集中化模式。他们的产品是一款商业云计算机,旨在为个人企业带来超大规模云计算的好处,标志着云计算领域的转变,他们自己的硬件和软件解决方案由Rust提供支持。
Rust 构建跨平台 GUI 的新选择
在现代软件开发过程中,用户界面(GUI)的设计与实现是不可或缺的一环。随着Rust编程语言的崛起,其安全性、性能和并发特性使其成为开发高质量GUI应用的理想选择。`relm`框架,作为Rust生态中的一员,提供了一种声明式、事件驱动的方法来构建GUI,本文将深入探究`relm`的设计理念、特性以及应用实例,为广大Rust爱好者开启构建跨平台GUI应用的新篇章。
Rust:Trait和泛型的高级用法
在这篇文章中,我们将快速复习一下Rust的trait和泛型,以及实现一些更高级的trait边界和类型签名。
从使用Rust构建SaaS平台中学到的东西
Meteroid是以产品为主导的云原生定价和计费的SaaS平台,解决了传统计费系统的复杂性和局限性,简化了复杂计费模型的创建、扩展和维护,自动生成发票,并为实现kpi提供清晰、可操作的见解。它消除了客户使用和计费之间的差距,确保了准确性和透明度。
Rust中Trait的关联类型和自动实现
在这篇文章中,我们将深入了解Rust中Trait的关联类型和自动实现。我们将使用标准库中的示例来阐明这些概念,并演示它们在API设计中的重要性。
介绍几个Github上的Rust开源项目-第三期
Quary是一个SQL引擎和CLI工具,可以让你轻松管理数据转换项目。Quary使团队能够设计、记录、测试和部署数据转换在你的数据存储上。
介绍一个Rust的键值存储库:keyv
Keyv是一个简单的键值存储库,旨在简化键值存储并增加其灵活性,支持多个后端。它为跨后端键值存储提供了一致的接口。由于支持基于ttl的过期,它足够通用,既可以充当缓存,也可以充当持久键值存储,以适应你的需求。
适合Rust初学者晋级到中级的项目
这个项目使用piston游戏引擎和OpenGL图形库构建Pong游戏,这个游戏创建两个球拍,一个在左边,一个在右边,还有一个球。有2名玩家,他们将能够用Y和X键和上下箭头处理左右球拍。
Rust挑战 - 动手实现HashMap 2
通过迭代器循环遍历entry,而不是老式的索引计数。由于我们需要从给定的索引开始,循环遍历整个数组,以index-1结束,这本身有点棘手,但可以使用Iterator::split\_at\_mut()方法完成。这样,我们就可以最终实现get\_mut()方法了。
为什么Rust中存在Eq与PartialEq两种Trait ?
当我们将Student与仅限制必须实现Eq的类型一起使用时,编译器就会提示。HashMap键需要实现Eq trait,因为HashMap的键必须满足自反关系。在我们的例子中,多个学生实例的id都可以是0,因此Student类型不能作为键。
如何避免Box常见的使用陷阱?
在系统编程的世界里,有效和安全地管理内存是一个关键的挑战。Rust以其独特的内存管理方法脱颖而出,提供了强大的工具来处理这种复杂性。其中一个工具是Box<T>类型,它以一种与Rust的所有权和借用规则无缝集成的方式进行堆分配。
在Rust中使用SQLX集成SQLite数据库
SQLite是一个c语言库,它实现了一个小型、快速、自包含、高可靠性、全功能的SQL数据库引擎,与Rust的安全性和性能非常匹配。
Rust优于C++的两个原因 ?
尽管学习曲线陡峭,Rust已经证明了自己是一门值得掌握的语言。今天,让我们深入研究一下Rust优于C++语言的原因。
如何动态匹配 tokio 派生线程?
当我们在使用tokio和MPSC(多生产者单消费者)通道时,通常以某种固定的方式连接派生线程。然而,在最近项目中,必须在各种配置中动态匹配异步生产者和消费者。
Rust中的编程范式:命令式和函数式编程范式
Rust是一种多范式编程语言,支持命令式、面向对象和函数式编程风格。风格的选择通常取决于开发人员的背景和他们要解决的具体问题。
如何使用Rust和Kafka进行高效的文件共享?
在当今相互关联的世界中,高效的文件共享是许多应用程序的基本需求,特别是在分布式环境中运行的应用程序。在本文中,我们将探索如何利用Kafka和Rust的强大功能来构建高效的文件共享系统。
Rust编程范式最佳实践
在函数式编程中,我们利用迭代器和闭包的强大功能来过滤文件。在命令式风格中,我们直接使用循环和条件来操作向量。在面向对象风格中,结构体FileFilter抽象掉了这些细节。
Rust: 如何区分可变引用还是可变变量?&mut VS mut
要在Rust中创建不可变变量,只需编写let x = 1337,这是简单的。如果想创建一个以后可以改变的变量,只需在let之后添加mut关键字。添加mut关键字通知其他人该变量将在代码的其他地方被修改。
高级Rust面试问题 - 3
描述如何在Rust中实现高级错误处理模式,例如将Result与自定义错误类型和 ?(用于错误传播的操作符) 相结合.
为什么Rust适用于游戏开发?
Rust是一种强调内存安全性、高性能和并发性的现代系统编程语言。由于其性能和安全特性,它最近作为一种非常适合游戏开发的语言而受到欢迎。
Rust在数据工程领域中的应用
近年来,数据工程领域发生了重大变化。数据系统日益复杂,对实时处理的需求,以及对可靠性和性能的不断需求,促使人们寻找更健壮的编程语言。这就是Rust的用武之地,Rust的增长速度非常快。
介绍几个Github上的Rust开源项目-第六期
EasyTier一个简单、安全、去中心化的内网穿透 VPN 组网方案,使用 Rust 语言和 Tokio 框架实现。
你是否了解Rust中闭包的优缺点?
在本文中,我们将探索Rust中的闭包,这是一种强大的语言特性,允许开发人员编写简洁、灵活且可读的代码。我们将深入研究闭包背后的动机,讨论它们的优点和缺点,并通过实际示例演示它们的使用。
如何编写异步运行时通用库?
使用futures crate,可以编写非常通用的库代码,但是time,sleep或timeout等操作必须依赖于异步运行时。这时,你可以定义自己的AsyncRuntime trait,并要求下游实现它。
用Rust和OpenCV打造ASCII图片
使用Rust和OpenCV的动态组合,将任何旧图片变成一个炙手可热的ASCII艺术图片。想象文字像像素一样跳舞,在纯文本的基础上捕捉图像的本质。
Rust Pingora框架实践:构建负载均衡器
Pingora是一个Rust框架,用于构建快速、可靠和可编程的网络系统。Pingora是经过实战测试的,它在过去几年的时间里每秒服务超过4000万次互联网请求。