王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI Desktop Server 的全平台实践经验
build && kubectl apply 项⽬介绍 开发 从代码库克隆代码到本地 硬盘,打开 VS Code 编 辑器进⾏编码 AMP 在 Amphitheatre 中创建 即可实时部署到云端 进⾏测试和验收 上线 利⽤ Amphitheatre 配置⽂ 件, 执⾏标准 CI/CD ⼯ 作流,轻松发布! 开发⼯程师需要在本机安装各种编程语⾔的运⾏时和相关的框 架以及库, 技术栈杂多 研发流程⻓达⼗⼏个步骤:安装开发软件、配置环境、克隆代 码、开发、本地调试、提交代码、编译构建、⾃动化测试、部 署到测试环境、测试验收、合并代码到主线、部署到⽣产环 境… 研发流程繁⻓ 起因:开发者之痛 为了部署测试,不仅要学习容器化、Kubernetes,还要申请资 源安装配置各项中间件,学习成本⾼,费⼼费⼒ 复杂的基础设施 Build Test Code Deploy Account Project Activity Tariq Share Redis ETCD 可让您完全跳过镜像构建, 使⽤新代码更新正在运⾏的容器, 只需⼏秒钟⽽不是⼏分钟。 本地开发实时部署到远程集群 如何⼯作的? Kubernetes 集群 更改 资源定义 ⻆⾊定义 执⾏资源 资源定义 资源定义 更改 ⽂件 更改 ⽤户 触发 ⽂件 更改 frontend0 码力 | 34 页 | 10.81 MB | 1 年前3秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践
代码编译成 LLVM IR 之前解析 AST,找到需要埋点的函数 2. 为这些函数生成对应的监控指标定义代码 3. 在进入和退出这些函数的 IR 指令前插入对指标的操作 (inc 等) 4. 重新打包成 Rust 代码并编译,得到增加埋点的可执行文件 ■ LLVM IR 插入监控埋点 ■ 优点: 1. 高度灵活 2. 零运行期成本 3. 封装性好,使用方便 ■ 缺点: 1. 学习曲线高 两个区块链之间传递任意数据的互操作性协议 互操作性(Interoperability) CKB-VM:基于 RISC-V 指令集 + ICSC 系统合约 Axon 可以执行任何 部署在 CKB 上的合约 (Rust) 通过 IBC 协议,让 CKB 和基于 Axon 构建的区块链可以同以太坊 和 Cosmos-SDK Chains 交互。 Forcerelay0 码力 | 32 页 | 3.63 MB | 1 年前3Hello 算法 1.1.0 Rust版
级别 非常小,MB 级别 速度 较慢,几百到几千 MB/s 较快,几十 GB/s 非常快,几十到几百 GB/s 价格 较便宜,几毛到几元 / GB 较贵,几十到几百元 / GB 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 request”按钮即可发起拉取请求。 第 16 章 附录 hello‑algo.com 376 3. Docker 部署 在 hello-algo 根目录下,执行以下 Docker 脚本,即可在 http://localhost:8000 访问本项目: docker-compose up -d 使用以下命令即可删除部署: docker-compose down 16.3 术语表 表 16‑1 列出了书中出现的重要术语,值得注意以下几点。0 码力 | 388 页 | 18.50 MB | 1 年前3Hello 算法 1.2.0 简体中文 Rust 版
级别 非常小,MB 级别 速度 较慢,几百到几千 MB/s 较快,几十 GB/s 非常快,几十到几百 GB/s 价格 较便宜,几毛到几元 / GB 较贵,几十到几百元 / GB 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 刷新仓库网页,点击“Create pull request”按钮即可发起拉取请求。 3. Docker 部署 在 hello-algo 根目录下,执行以下 Docker 脚本,即可在 http://localhost:8000 访问本项目: docker-compose up -d 使用以下命令即可删除部署: docker-compose down 16.3 术语表 表 16‑1 列出了书中出现的重要术语,值得注意以下几点。0 码力 | 387 页 | 18.51 MB | 10 月前3Hello 算法 1.0.0 Rust版
级别 非常小,MB 级别 速度 较慢,几百到几千 MB/s 较快,几十 GB/s 非常快,几十到几百 GB/s 价格 较便宜,几毛到几元 / GB 较贵,几十到几百元 / GB 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 request”按钮即可发起拉取请求。 第 16 章 附录 hello‑algo.com 374 3. Docker 部署 在 hello-algo 根目录下,执行以下 Docker 脚本,即可在 http://localhost:8000 访问本项目: docker-compose up -d 使用以下命令即可删除部署: docker-compose down 16.3 术语表 表 16‑1 列出了书中出现0 码力 | 383 页 | 17.61 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
与之相关联的地址数据是 127.0.0.1。第二个实例,loopback, kind 的值是 IpAddrKind 的另一个变体,V6,关联的地址是 ::1。我们使用了一个结构体来将 kind 和 address 打包在一起,现在枚举变体就与值相关联了。 我们可以使用一种更简洁的方式来表达相同的概念,仅仅使用枚举并将数据直接放进每一个枚 举变体而不是将枚举作为结构体的一部分。IpAddr 枚举的新定义表明了 V4 错误是软件开发中不可避免的事实,所以 Rust 有一些处理出错情况的特性。在许多情况下, Rust 要求你承认错误的可能性,并在你的代码编译前采取一些行动。这一要求使你的程序更 加健壮,因为它可以确保你在将代码部署到生产环境之前就能发现错误并进行适当的处理。 Rust 将错误分为两大类:可恢复的(recoverable)和 不可恢复的(unrecoverable)错误。对 于一个可恢复的错误,比如文件未找到 中很多并发错误都是编译时错误,而非运行时错误。 因此,相比花费大量时间尝试重现运行时并发 bug 出现的特定情况,不正确的代码会直接编 译失败并提供解释问题的错误信息。因此,你可以在开发时修复代码,而不是在部署到生产环 境后修复代码。我们给 Rust 的这一部分起了一个绰号无畏并发(fearless concurrency)。无畏 并发令你的代码免于出现诡异的 bug 并可以轻松重构且无需担心会引入新的 bug。0 码力 | 562 页 | 3.23 MB | 9 天前3Hello 算法 1.2.0 繁体中文 Rust 版
級別 非常小,MB 級別 速度 較慢,幾百到幾千 MB/s 較快,幾十 GB/s 非常快,幾十到幾百 GB/s 價格 較便宜,幾毛到幾元 / GB 較貴,幾十到幾百元 / GB 非常貴,隨 CPU 打包計價 我們可以將計算機儲存系統想象為圖 4‑9 所示的金字塔結構。越靠近金字塔頂端的儲存裝置的速度越快、容 量越小、成本越高。這種多層級的設計並非偶然,而是計算機科學家和工程師們經過深思熟慮的結果。 重新整理倉庫網頁,點選“Create pull request”按鈕即可發起拉取請求。 3. Docker 部署 在 hello-algo 根目錄下,執行以下 Docker 指令碼,即可在 http://localhost:8000 訪問本專案: docker-compose up -d 使用以下命令即可刪除部署: docker-compose down 16.3 術語表 表 16‑1 列出了書中出現的重要術語,值得注意以下幾點。0 码力 | 388 页 | 18.82 MB | 10 月前3应用 waPC (rust) 做软件测试工具
to modified request • 模拟数据规则 • 自动化测试 • https://github.com/wasmmock/ wasm_mock_server • 用 rust 打包所有测试需求 Wasm mock server Why use rust ? Software testing tool • 模拟数据规则 • 自动化测试 • Company's own protocol0 码力 | 30 页 | 2.50 MB | 1 年前3Rust 程序设计语言简体中文版
0.1 。第二个实例, loopback ,kind 的值是 IpAddrKind 的另一个成员,V6 ,关联的地址是 ::1 。我们使用了 一个结构体来将 kind 和 address 打包在一起,现在枚举成员就与值相关联了。 我们可以使用一种更简洁的方式来表达相同的概念,仅仅使用枚举并将数据直接放进每一个枚 举成员而不是将枚举作为结构体的一部分。IpAddr 枚举的新定义表明了 V4 错误是软件中不可否认的事实,所以 Rust 有一些处理出错情况的特性。在许多情况下,Rust 要求你承认错误的可能性,并在你的代码编译前采取一些行动。这一要求使你的程序更加健 壮,因为它可以确保你在将代码部署到生产环境之前就能发现错误并进行适当的处理。 Rust 将错误分为两大类:可恢复的(recoverable)和 不可恢复的(unrecoverable)错误。对 于一个可恢复的错误,比如文件未找到 中很多并发错误都是 编译时 错误,而非运行时错 误。因此,相比花费大量时间尝试重现运行时并发 bug 出现的特定情况,Rust 会拒绝编译不 正确的代码并提供解释问题的错误信息。因此,你可以在开发时修复代码,而不是在部署到生 产环境后修复代码。我们给 Rust 的这一部分起了一个绰号 无畏并发(fearless concurrency)。 无畏并发令你的代码免于出现诡异的 bug 并可以轻松重构且无需担心会引入新的0 码力 | 600 页 | 12.99 MB | 1 年前3基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭
异构设备兼容性强(x86, ARM, RISC-V, MIPS, Raspberry Pi, Orange Pi … ) Serverless in MQTT Broker • 更好的代码执⾏环境抽象,它可以直接部署代码或应⽤程序到各种异构设备,⽽不需要开 发⼈员为每个异构设备都编写或编译⼀套单独的代码或程序,从⽽提⾼开发效率; • 更好的安全机制,Docker 之类的容器最让⼈诟病的问题之⼀就是安全性; 是偏⼤,并且依赖的东⻄偏多,很难在⼀些资源 受限的设备上跑起来; Wasm vs Docker • Kubedge? • OpenYurt? • Krustlet? wasm如何分发部署? 3. HPMQ函数开发说明 HPMQ平台 触发器 公共函数 (⽐如:tb2aws) 私有函数 配置 关联 关联 使⽤流程 编写函数 Hpmqfile OCI镜像 镜像仓库0 码力 | 31 页 | 3.95 MB | 1 年前3
共 23 条
- 1
- 2
- 3