草庐IT

tonic-Rust

全部标签

redis - 如何在 Rust 中使用 Redis 存储/获取结构?

我在想办法以编程方式实例化具有设置值的结构(其中一个可能是另一个嵌套结构-或不是)-并将其保存在Redis中.从Redis中将其取回结构我知道要在这里实现ToRedisArgs和FromRedisValue两个特征,但即使对于我非常简单的2个结构,我也不知道要写什么来实现他们在使用rust。我做了一个简单的例子:externcrateredis;useredis::Commands;//fnfetch_an_integer()->redis::RedisResult{////connecttoredis//letclient=try!(redis::Client::open("redi

ios - 在 iOS 应用程序中添加多个静态 Rust 库

我有两个用Rust编写的库(具有C兼容接口(interface)),我正试图将它们集成到iOS应用程序中。在同一项目中集成两个.a文件时,出现错误,因为Rust标准库中的符号现在多次出现:duplicatesymbol_rust_eh_personalityin:/Users/x/Development/ios-client/Y/Rust/lib1_ffi.a(lib1_ffi.0.o)/Users/x/Development/ios-client/Y/Rust/lib2_ffi.a(lib2_ffi.0.o)...如何解决?可以将Rust符号提取到单独的库中吗?或者符号可以命名空间吗

ios - iOS 对 Rust 的支持现状如何?

Thisdocument是说由于缺乏分段堆栈支持,iOS目标不支持安全任务。我查看了Rust的问题跟踪器,这与32位版本的iOS的线程本地存储有些相关。好吧,我对这类话题不是很熟悉。无论如何,thistext是说分段堆栈方法将被放弃。有anHNentry这表明在64位系统中并不是真正需要它。我对此感到困惑。iOS对Rust的支持现状如何?任务完全没有堆栈保护?还是仅在64位中protected? 最佳答案 有一个blogpost声称RustisnowcompletelyportedtoiOS:allarchitecturesford

tcp - 简单的 Rust TCP 服务器和客户端不接收消息并且永不终止

我正在尝试生成一个服务器并在不同的线程上连接到它。我知道Rust有阻塞I/O,但我觉得我应该能够在不同的线程中连接服务器。我对线程的了解不多。最终游戏是通过网络连接到该服务器。这就是我用player_streamTCPStream模拟的内容。player_stream会一直等到它的缓冲区中有内容。一旦在那里写入了一些东西,它就会响应回服务器。照原样,程序不会终止。usestd::net::{TcpListener,TcpStream};usestd::io::{BufReader,BufWriter};usestd::io::Write;usestd::io::Read;usestd:

linux - Rust 1k TCP 连接限制

我正在编写一个高吞吐量的多线程Rust服务器。服务器一次需要处理大约10-20k的连接。我已经编写了程序并且速度非常快,但是,它最多只允许1k连接。1k之后,TCPListener不会返回任何其他内容,直到当前连接被删除。我在Rust内部看不到设置连接限制的任何地方。这是core::net的Rust限制还是系统限制?我在Linux4.14.15上运行,开发服务器将在4.14.xxxx上。使用rust1.23.0 最佳答案 我认为这是系统限制。如果您键入ulimit-n,您将看到打开的最大文件数,我认为它也适用于套接字。尝试输入uli

tcp - Rust TcpListener 不响应外部请求

我的主要功能是这样的:fnmain(){letlistener=TcpListener::bind("192.168.1.187:9527").unwrap();println!("Listeningforconnectionsonport{}",9527);forstreaminlistener.incoming(){matchstream{Ok(stream)=>{thread::spawn(move||{letreq_stream=&stream.try_clone().unwrap();letreq=request::new(req_stream);letres=respons

http - 使用 std 在 Rust 中发出 HTTP 请求

我正在尝试自学Rust。我知道rust-http,但我想构建自己的http客户端。我正在使用GNULinux64位的当前夜间构建。这是我当前的代码:usestd::io::net::ip::SocketAddr;usestd::io::net::tcp::TcpStream;usestd::io::net::addrinfo::get_host_addresses;usestd::io::net::ip::IpAddr;usestd::io::stdio::println;fnmain(){//HTTPendpointlethost=~"www.telize.com";letpath=

tcp - 创建一个监听端口的简单 Rust 守护进程

我一直在尝试用Rust制作一个简单的守护进程,它将使用tcp_stream监听端口并打印消息。但是,我遇到了两个问题:1)如果我的守护进程使用println!,它就会崩溃。如果我删除所有对println!的提及,守护进程就会工作。制作守护进程时,stdout/stdin是如何工作的?OnesourceIfoundontheRustmailinglist说“使用现代初始化系统,如systemd或launchctl,这工作得非常好,应用程序开发人员不必关心守护进程,日志记录也可以通过stdout简单地完成。”这是什么意思?2)当我在非守护进程模式下运行下面的代码时,curls不会立即返回(

http - Rust 中基于 SSH 的 TCP 隧道

我正在尝试用Rust编写一个小程序来基本上完成ssh-L5000:localhost:8080所做的事情:在localhost:5000之间建立隧道我的机器和远程机器上的localhost:8080,这样如果HTTP服务器在远程机器上的端口8080上运行,我可以通过localhost:5000在本地访问它>,绕过可能阻止外部访问8080的远程防火墙。我意识到ssh已经做到了这一点并且可靠,这是一个学习项目,而且如果我让它工作的话我可能会添加一些功能:)这是一个准系统(没有线程,没有错误处理)到目前为止我想出的版本(应该在Rust1.8上编译):externcratessh2;//see

sockets - Rust 持久化 TcpStream

我似乎在与std::io::TcpStream作斗争。我实际上是在尝试打开与另一个系统的TCP连接,但下面的代码完全模拟了这个问题。我有一个Tcp服务器,它在打开时简单地将“HelloWorld”写入TcpStream,然后循环以保持连接打开。fnmain(){letlistener=io::TcpListener::bind("127.0.0.1",8080);letmutacceptor=listener.listen();forstreaminacceptor.incoming(){matchstream{Err(_)=>{/*connectionfailed*/}Ok(stre