草庐IT

rust-0.8

全部标签

简明快速配置 Rust 工具链

以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/dBzL9WZ8P1L1X9j_XkmNQg你可能会为不同版本的工具链而烦恼,就算是ruster也一样。介绍一个非常好用的管理工具给大伙,就是使用Rustup安装和更新Rust工具链。安装Rustup之后,可以在stable,beta,和nightly等版本的Rust编译器工具之间无缝切换。写本文的时候,Rust编程语言的使用已经越来越流行,受到大量编程人员和企业的尝试和偏好。Rust受欢迎的原因之一是Rust提供的工具非常好用,对于开发人员来说,使用这些工具已经是

WebAssembly实践指南——C++和Rust通过wasmtime实现相互调用实例

C++和Rust通过wasmtime实现相互调用实例1wasmtime介绍wasmtime是一个可以运行WebAssembly代码的运行时环境。WebAssembly是一种可移植的二进制指令集格式,其本身与平台无关,类似于Java的class文件字节码。WebAssembly本来的设计初衷是想让浏览器可以运行C语言这种编译型语言的代码。通常我们的C语言代码会使用gcc或clang等编译器直接编译链接成与平台相关的二进制可执行文件,这种与平台相关的二进制文件浏览器是无法直接运行的。如果想让浏览器运行C语言代码,就需要使用可将C语言编译成WebAssembly指令的编译器,编译好的代码是wasm格

用Rust手把手编写一个Proxy(代理), 动工

用Rust手把手编写一个Proxy(代理),动工项目++wmproxy++gitee传送门github传送门设计流程图flowchartLRA[客户端]-->|Http|B[代理端]-->C[代理服务端]-->D[服务端]B-->|直达|DA-->|Https|BA-->|Socks5|B代理端和代理服务端之间可用自有格式来实现多路复用以减少连接的建立断开的开销,目前暂未实现代理服务端。类结构proxy.rs负责代理结构的存储,监听类型,监听地址,是否有父级地址,认证账号密码等。flag.rs监听类型的二进制结构,可同时支持多结构比较http/https/socks5,如果解析http失败则尝

Tauri 提供界面 + 使用 Rust 实现连接远程 Linux 服务器、发送文件、执行命令

Tauri提供界面+使用Rust实现连接远程Linux服务器、发送文件、执行命令文章目录Tauri提供界面+使用Rust实现连接远程Linux服务器、发送文件、执行命令一、Tauri概述二、界面预览三、代码参考1、main.rs2、App.vue3、Greet.vue4、依赖一、Tauri概述Tauri是一个用于构建跨平台桌面应用程序的工具和框架。它的目标是通过将Web技术与本地功能结合,使开发者能够以简单、高效的方式创建现代的桌面应用。以下是Tauri的一些主要特点和概述:跨平台支持:Tauri允许你构建跨平台的桌面应用程序,它支持Windows、macOS和Linux等常见的操作系统。你可

tcp - 如何确定我是否需要来自 Rust io::Error 的新 TCP 连接?

我正在使用rediscrate从Rust通过TCP与Redis服务器通信。如果TCP连接由于某种原因断开(例如服务器崩溃),我想通过创建一个新的Connection来尝试重新连接(有一些回退以免阻塞服务器).我的问题是如何确定何时重新连接?rediscrate抛出RedisError的,其中一些包含io::Error.如何确定哪些io::Error需要新连接,哪些不需要?我想我必须匹配io::Error::kind()沿着这条线:usestd::io;fnneeds_new_connection(error:&io::Error)->bool{matcherror.kind(){io:

文盘Rust -- tonic-Rust grpc初体验

gRPC是开发中常用的开源高性能远程过程调用(RPC)框架,tonic是基于HTTP/2的gRPC实现,专注于高性能、互操作性和灵活性。该库的创建是为了对async/await提供一流的支持,并充当用Rust编写的生产系统的核心构建块。今天我们聊聊通过使用tonic调用grpc的的具体过程。工程规划rpc程序一般包含server端和client端,为了方便我们把两个程序打包到一个工程里面新建tonic_sample工程cargonewtonic_sampleCargo.toml如下[package]name="tonic_sample"version="0.1.0"edition="2021"

linux - 如何在 Rust 中设置套接字选项 SO_REUSEPORT?

我已经阅读了std::net和mio的文档,并且发现了一些方法,例如set_nodelay和set_keepalive,但我还没有找到在给定套接字上设置其他套接字选项(如SO_REUSEPORT和SO_REUSEADDR)的方法。我该怎么做? 最佳答案 因为SO_REUSEPORTisn'tcross-platform,您将需要深入研究特定于平台的代码。在这种情况下,您可以从套接字获取原始文件描述符,然后使用libc包中的函数、类型和值来设置您想要的选项:externcratelibc;//0.2.43usestd::{io,mem

分析Tokio的运行机制和内部实现原理,进一步探讨如何用Rust编写健壭、异步、灵活、易于扩展的应用。

作者:禅与计算机程序设计艺术1.简介2018年6月,Rust语言在微软举办的年度开发者大会上正式发布了1.0版本。作为一个全新的系统编程语言,它的优越特性让它迅速走向大众视野。如今,Rust语言已成为一个主流的系统编程语言,并且受到云计算、微服务、区块链等行业的青睐。但仅仅因为Rust的出现就掀起了一股关于如何用Rust来编写健壮、高效、灵活、易于扩展的应用的讨论。2019年初,Tokio项目出现在人们的视线中。Tokio是一个开源的异步运行时库,专注于提供一种简单而安全的方式来编写异步IO应用。它提供了一个抽象层,允许开发者无缝切换不同类型的异步运行时,并提供了统一的接口用于实现不同的功能,

Rust语言中的宏

作者:禅与计算机程序设计艺术1.简介2010年9月1日,Rust编程语言正式发布,这个由Mozilla、Dropbox和其他一些企业领导开发的开源系统级编程语言已经吸引了越来越多的开发者和公司投入到其项目中进行尝试。相对于C/C++或者Java这样传统的编译型语言而言,Rust提供了一种全新的编程模型——安全的并发和高效的内存管理机制,让开发者能够在不破坏性能的前提下实现更复杂的功能。但是Rust作为一门新兴的语言,它的学习曲线较陡峭,并且由于没有经过完整的教育或培训机构的支持,很多开发者都会产生一些误区,甚至出现一些奇怪的问题。本文将会对Rust中的宏进行介绍,并通过例子展示它可以用来解决什

弃用开源插件!JetBrains决定对Rust出手!

撰稿丨千山很早就有人问:Jetbrains 出了那么多集成开发环境(IDE),诸如IDEA、CLion、PyCharm、PhpStorm、GoLand、WebStorm等等,为什么不能整合成一个IDE,一招通吃呢?显然Jetbrains有自己的考量。时至今日,Jetbrains依然坚持自己的产品路线:给每种语言打造一个“家”。最近,JetBrains瞄上的是Rust,针对这门编程语言新贵,它推出了一个名为RustRover的集成开发环境。官网显示,这款IDE目前还在抢先体验计划(EarlyAccessProgram)中,大家可以免费下载使用并提供反馈。此前或许很难想象,专为Rust打造的IDE