• 2024-10-28Rust整合Elasticsearch
    Elasticsearch是什么Lucene:Java实现的搜索引擎类库易扩展高性能仅限Java开发不支持水平扩展Elasticsearch:基于Lucene开发的分布式搜索和分析引擎支持分布式、水平扩展提高RestfulAPI,可被任何语言调用ElasticStack是什么ELK(ElasticStack):Elasticsearch结合Kibana、Log
  • 2024-10-19rust操作mysql增删改查
    toml[dependencies]mysql="25.0.0"[[bin]]name="mysql"path="src/mysql.rs"mysql.rsusemysql::*;usemysql::prelude::*;fnmain(){leturl="mysql://root:root@localhost:3306/fiber";letpool=Po
  • 2024-09-28rust运行shell命令并获取输出
    usestd::io::{BufReader,BufRead};usestd::process::{self,Command,Stdio};fnmain(){ls();ps();xargs();time();iostat();}//不带参数命令fnls(){letoutput=Command::new("ls").output().expect("执行异常,提示");
  • 2024-08-22【从头写CAD】 主程序
    近年来,rust出现了不少GUI库,如借用浏览器资源的TAURI,其它语言转化过来的gtk4-rs,以及原生的egui、Iced等等,多数不是太了解。无意间发现的Slint让我非常感兴趣。它既快又小,非常适合嵌入式开发,可用于为各种操作系统和处理器架构开发UI,包括Linux、macOS、Windows、WebAssemb
  • 2024-08-120218-地址解析协议
    环境Time2022-11-20VirtualBox7.0.2Rust1.65.0pnet0.31.0CentOS7前言说明参考:https://docs.rs/pnet_packet/latest/pnet_packet/index.html目标使用两台虚拟机,通过IP地址,获取到目标主机的MAC地址。日常使用的时候,都是使用IP连接服务器,需要使用地址解析协
  • 2024-07-05Rust简明教程第九章-多线程和并发
    并发并发指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果进程是一个程序的实例线程是一个进程中执行的一个单一线性执行流程,一个进程包含多个线程,线程可以并发执行main是主线程,系统的入口区别:并发指一个系统能够
  • 2024-06-20rust 爬取笔趣阁生成epub文件
    简单研究一下epub,毕竟txt总是看着不爽,后面在优化epub样式cargo.toml[package]name="bqg_epub"version="0.1.0"edition="2021"[dependencies]epub-builder="0.7.4"reqwest={version="0.12.5",features=["blocking
  • 2024-05-28Rust语言实现的去中心化AI网络节点
    一、概述去中心化和人工智能(AI)是两个极具潜力的发展方向。Gaia项目正是将这两者结合起来,创造了一个去中心化的AI网络节点。本文将深入探讨Gaia项目的技术细节,通过丰富的示例和详细描述,帮助读者全面理解并掌握该技术。二、什么是Gaia?Gaia是一个去中心化的人工智能网络,它旨
  • 2024-04-20rust程序中设置和访问环境变量
    在项目中,我们通常需要设置一些环境变量,用来保存一些凭证或其它数据,这时我们可以使用dotenv这个crate。1、添加crate依赖首先在项目中添加dotenv这个依赖:  2、添加.env文件在开发环境下,我们可以在项目根目录下创建和编辑.env这个文件: 在运行环境下,这个.env文件要
  • 2024-04-06Rust 的 termion 库控制终端光标的位置
    在控制台应用程序中,固定打印在屏幕的第一行通常涉及到控制终端光标的位置。Rust标准库本身并不提供直接控制终端光标位置的功能,但你可以使用第三方库如termion来实现这个需求。termion是一个用于处理终端的Rust库,它提供了很多有用的功能,包括控制光标位置、颜色和样式
  • 2024-02-27Rust 无畏并发
    本文在原文基础上有删减,原文链接无畏并发。目录使用线程同时运行代码使用spawn创建新线程使用join等待所有线程结束将move闭包与线程一同使用使用消息传递在线程间传送数据信道与所有权转移发送多个值并观察接收者的等待通过克隆发送者来创建多个生产者共享状态并发互斥器
  • 2024-02-19[Rust] parse().unwrap()
    Thislessonexplains TypeInference inRustandhowitallowsthecompilertofigureoutbyitself,whattypevariableshavewhentheygettheirvaluesassigned.Therearecaseswhenthecompilercannotinferavalue'stypethroughstaticanalysis.I
  • 2024-01-25无涯教程-Rust - 错误处理
    在Rust中,错误可以分为两大类,如下表所示。Name&描述UsageRecoverable可恢复的错误ResultenumUnRecoverable无法恢复的错误panicmacro与其他编程语言不同,Rust没有Exception异常,它返回可恢复错误的枚举Result<T,E>,如果程序遇到不可恢复的错误,则调用panic宏。Panic
  • 2024-01-25rust使用lazy_static对全局变量多线程并发读写示例
    首先需要在项目依赖Cargo.toml添加lazy_static依赖项[dependencies]lazy_static="1.4.0"示例代码如下:uselazy_static::lazy_static;usestd::sync::{RwLock,RwLockReadGuard,RwLockWriteGuard};usestd::thread;#[derive(Debug)]structSharedData{data:Vec<
  • 2024-01-13RUST web框架axum快速入门教程6之测试
    本文主要讨论axum的测试,axum对于测试的支持还是比较完善的,我们可以测试状态码,HTTP头信息,响应体等内容,因为框架实现的原因,其实axum很依赖tower。往期文章:https://youerning.top/post/axum/quickstart-1https://youerning.top/post/axum/quickstart-2https://youerning.top/pos
  • 2024-01-09利用Rust库从bing抓取各行业企业的官网信息
    不管是什么行业,做任何新项目前,都会拿同行数据做参考对比,但是想要收集全面的信息光靠人工是行不通的。因此,有大公司重金请我写一个通用模版,也就是抓取行业信息,我通过Rust库写的一个自动化爬虫程序,只要输入相关的关键词就能得到你想要的数据,适合各行各业,下面就来看看具体的编写流程吧
  • 2024-01-02Rust抓取抖音app达人数据并分析热度
    抖音作为最热门的短视频平台之一,人流量很大,而且内容相对丰富。最近有朋友公司想要我采集一些达人数据,厚着脸皮过来求我,我又推脱不掉,索性利用下班时间给他到了个自动爬虫程序,同时也标识一些注意点,让他自己随时修改。抖音APP达人数据抓取是一个复杂的过程,涉及到网络爬虫、数据解析、
  • 2023-12-20Rust全局变量
    Rust全局变量Rust全局变量的一种解决方案,由于mut问题,会导致unsafe代码块。usestd::{collections::HashMap,sync::OnceLock};///全局变量,模拟SESSION管理器pubstaticmutSESSION:OnceLock<HashMap<String,String>>=OnceLock::new();///初始化函数pubfninit()
  • 2023-11-30Result | Option | unwrap | ?
    原文链接1、Option-可空变量虽然Rust中有null的概念,但是使用null并不是Rust中常见的模式。假设我们要写一个函数,输入一种手机操作系统的名称,这个函数就会返回其应用商店的名称。如果传入字符串iOS,该函数将返回AppStore;如果传入字符串android,那么该函数将返回PlayStore。任何
  • 2023-11-14数字滤波器分析---相位响应
    数字滤波器分析---相位响应MATLAB®函数可用于提取滤波器的相位响应。在给定频率响应的情况下,函数 abs 返回幅值,angle 返回以弧度为单位的相位角。要使用 fvtool 查看巴特沃斯滤波器的幅值和相位,请使用:d=designfilt('lowpassiir','FilterOrder',9,...'HalfPowerFrequ
  • 2023-11-10如何使用select库采集携程
    今天给大家带来一个select库编写的简单爬虫程序,主要是对携程的采集,代码中有一些制定的字符串比较难以理解,我有针对性的做了中文解释,一起来学习一下吧。```rustfnmain(){//创建一个TcpListener,监听指定的端口letlistener=TcpListener::bind("0.0.0.0:8000").unwrap();//
  • 2023-11-10Rust和isahc库编写代码示例
    Rust和isahc库编写的图像爬虫程序的代码:useisahc::{Client,Response};fnmain(){letclient=Client::new().with_proxy("").finish();leturl="";letresponse=client.get(url).send().await
  • 2023-11-06利用Rust编程语言和tide库采集搜狗图片
    今天给大家带来一个用Rust编程语言和tide库编写一个爬虫程序,主要用于采集搜狗图片。一起来学习一下吧。```rust//导入所需的库usestd::io::{BufRead,BufReader};usestd::net::TcpStream;usestd::sync::mpsc;//定义一个消息通道来传递爬取的结果let(sender,receiver)
  • 2023-10-28rust 创建多线程web server
    创建一个httpserver,处理http请求。创建一个单线程的web服务webserver中主要的两个协议是http和tcp。tcp是底层协议,http是构建在tcp之上的。通过std::net库创建一个tcp连接的监听对象,监听地址为127.0.0.1:8080.usestd::net::TcpListener;fnmain(){l
  • 2023-09-09rust 多线程
    多线程之间的通信和内存共享常见方式usestd::sync::mpsc;usestd::thread;usestd::sync::{Arc,Mutex};structUser{name:String}fnmain(){//Arc通过共享内存在线程间通信数据不可修改(所以这里使用的不可变引用)letusr_raw=Arc::new(User{