大家好,今天小编为大家分享关于gg游戏修改器怎么启动_怎么启动GG修改器的内容,赶快来一起来看看吧。
让我们构建一个 Rust Todo 应用程序
在这个故事中,我们将使用使用 gRPC 的 Rust 创建一个基本的 Todo 应用程序。首先,我想简要介绍一下 gRPC 和 Protocol Buffers。
什么是 gRPC?
gRPC 是一个现代开源的高性能远程过程调用 (RPC) 框架,可以在任何环境中运行。
RPC 代表 Remote Procedure Call,开头的 g 代表 General Purpose,或者对于某些人来说它代表 Google。但实际上,您可以在这里看到:g_stands_for,gRPC 团队在每个版本中都会更改 g 的含义 🙂
我假设您熟悉常见的 REST API。它们通过 JSON 对象进行通信,在 gRPC 而不是 JSON 中,我们使用协议缓冲区来序列化数据。
Protocol Buffers
Protocol Buffers 是 Google 用于序列化结构化数据的语言中立、平台中立、可扩展机制。
在 gRPC 中,传输的数据(序列化)是二进制形式的。因此这意味着它比 JSON 或 XML 更快,因为它占用的空间更少,而且空间越小,带宽就越小。
将 gRPC 与 Rust 一起使用
首先,创建一个新的货物包。
cargo new rust-grpc
现在,在创建 cargo 包之后,我们必须为 gRPC 添加一些依赖项,并在 Cargo.toml 中为我们的服务器和客户端二进制文件创建二进制定义。
[[bin]]
name = "grpc-server"
path = "src/server.rs"
[[bin]]
name = "grpc-client"
path = "src/client.rs"
[dependencies]
tonic = "0.7"
prost = "0.10"
tokio = { version = "1.19", features = ["rt-multi-thread", "macros"] }
[build-dependencies]
tonic-build = "0.7"
创建您的原型文件。
proto/todo.proto
syntax = "proto3";
import "google/protobuf/empty.proto";
package todo;
message TodoItem {
string name = 1;
string description = 2;
int32 priority = 3;
pleted = 4;
}
message GetTodosResponse {
repeated TodoItem todos = 1;
}
message CreateTodoRequest {
string name = 1;
string description = 2;
int32 priority = 3;
}
message CreateTodoResponse {
TodoItem todo = 1;
bool status = 2;
}
service Todo {
rpc GetTodos(google.protobuf.Empty) returns (GetTodosResponse);
rpc CreateTodo(CreateTodoRequest) returns (CreateTodoResponse);
}
这是 Proto 文件的语法。 先说一下proto文件的语法:
将 Proto 文件编译为 Rust 代码。
build.rs
fn main() -> Result<(), Box<dyn std::error::Error>> {
tonic_build::configure()
.compile(&["proto/todo.proto"], &["proto"])
.unwrap();
Ok(())
}
服务器代码
src/server.rs
use std::sync::Mutex;
use tonic::{transport::Server, Request, Response, Status};
use todo::todo_server::{TodoServer, Todo};
use todo::{TodoItem, GetTodosResponse, CreateTodoRequest, CreateTodoResponse};
pub mod todo {
tonic::include_proto!("todo");
}
#[derive(Debug, Default)]
pub struct TodoService {
todos: Mutex<Vec<TodoItem>>
}
#[tonic::async_trait]
impl Todo for TodoService {
async fn get_todos(&self, _: Request<()>) -> Result<Response<GetTodosResponse>, Status> {
let message = GetTodosResponse {
todos: self.todos.lock().unwrap().to_vec()
};
Ok(Response::new(message))
}
async fn create_todo(&self, request: Request<CreateTodoRequest>) -> Result<Response<CreateTodoResponse>, Status> {
let payload = request.into_inner();
let todo_item = TodoItem {
name: payload.name,
description: payload.description,
priority: payload.priority,
completed: false
};
self.todos.lock().unwrap().push(todo_item.clone());
let message = CreateTodoResponse {
todo: Some(todo_item),
status: true
};
Ok(Response::new(message))
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let addr = "0.0.0.0:50051".parse().unwrap();
let todo_service = TodoService::default();
Server::builder()
.add_service(TodoServer::new(todo_service))
.serve(addr)
.await?;
Ok(())
}
让我们快速看看这里发生了什么。
客户代码
src/client.rs
use todo::todo_client::TodoClient;
use todo::{CreateTodoRequest};
pub mod todo {
tonic::include_proto!("todo");
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut client = TodoClient::connect("http://0.0.0.0:50051").await?;
let request = tonic::Request::new(());
let response = client.get_todos(request).await?;
println!("{:?}", response.into_inner().todos);
let create_request = tonic::Request::new(CreateTodoRequest {
name: "test name".to_string(),
description: "test description".to_string(),
priority: 1,
});
let create_response = client.create_todo(create_request).await?;
println!("{:?}", create_response.into_inner().todo);
Ok(())
}
同样,让我们快速看看这里发生了什么。
现在完成所有这些,构建,运行服务器二进制文件,等待它启动,然后运行客户端二进制文件。
cargo build
cargo run –bin grpc-server
cargo run –bin grpc-client
我希望它也对你有用。
如果没有,您可能必须根据您的操作系统安装 protobuf 包来编译您的 proto 文件。 我选择在 Docker Container 中运行我的应用程序
关注七爪网,获取更多APP/小程序/网站源码资源!
以上就是关于gg游戏修改器怎么启动_怎么启动GG修改器的全部内容,希望对大家有帮助。
gg游戏修改器如何添加应用,如何使用GG游戏修改器添加应用? 大小:19.37MB1,248人安装 GG游戏修改器是一款非常受欢迎的游戏修改器,它可以帮助玩家在游戏中获得更多的游戏……
下载华为手机gg修改器root_华为手机gg修改器怎么守护进程 大小:19.52MB2,278人安装 大家好,今天小编为大家分享关于华为手机gg修改器root_华为手机gg修改器怎么守护进……
下载gg游戏修改器刷金币,一款让你爱不释手的GG游戏修改器刷金币 大小:5.69MB1,112人安装 在玩游戏的过程中,经常会遇到一些需要大量金币才能获得的道具或任务,有时候刷金币……
下载gg修改器 不root,什么是gg修改器? 大小:16.72MB1,057人安装 gg修改器是一款针对Android游戏的修改工具,可以帮助用户修改游戏中的各种数值,例……
下载gg修改器版中文_gg修改器版中文下载 大小:10.12MB2,338人安装 大家好,今天小编为大家分享关于gg修改器版中文_gg修改器版中文下载的内容,赶快来……
下载怎么给gg修改器免root,让你的GG修改器变得更强大,无需Root! 大小:18.38MB1,040人安装 GG修改器是一款十分实用的游戏修改工具,能够让你在游戏中获得更多的游戏资源和优势……
下载gg修改器中文最新版_gg修改器官方中文版 大小:18.19MB2,307人安装 大家好,今天小编为大家分享关于gg修改器中文最新版_gg修改器官方中文版的内容,赶……
下载gg游戏修改器的,掌握游戏变化赞美gg游戏修改器的神奇功能 大小:7.87MB942人安装 作为一名游戏玩家,我们都希望能够在游戏中畅快体验各种乐趣,在这个过程中,gg游戏……
下载怎么使用gg游戏修改器,GG游戏修改器的神奇功能 大小:12.31MB1,211人安装 对于喜欢玩游戏的玩家们来说,游戏修改器是一个非常有用的工具。GG游戏修改器作为其……
下载gg游戏修改器刚下载怎么用, 一款神奇的修改器GG游戏修改器 大小:16.52MB1,509人安装 GG游戏修改器作为一款免费的修改器软件,可以说是在各种网络游戏中扮演着重要的角……
下载