运⾏在浏览器中的 P2P ⽹络 - 李敏成运⾏在浏览器中的 P2P ⽹络 李敏成 from RingsNetwork Montivation 连接所有钱包持有者 去中⼼化的 Pure P2P ⽹络 The Idea 最好的节点载体是浏览器 ⽤户群体 钱包插件 运⾏环境 How to P2P Did: Wallet Address E2E secure(sign/encryption): Wallet Discovery node Connect through WebRTC Route by Chord DHT Rings-node browser extension Rings-node daemon 浏览器节点 服务器节点 Node communication Node A Node B Create Offer ConnectNodeSend ConnectNodeReport Pending0 码力 | 23 页 | 1.74 MB | 1 年前3
基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭⽤⼀句话描述,那就是Webassembly是执⾏程序的标准化字节码格式 • Webassembly最初被发明,是⽤于Web浏览器。 • 由W3C⼯作组开发的Web浏览器标准,于2017年11⽉, Chrome,Firefox,Microsoft Edge,Safari四⼤浏览器都开始实验性的⽀持 • 它在浏览器以外也有很⼴泛的运⽤,特别是在边缘计算领域。 • ⽀持多语⾔开发,⽐如Go,Python, rust,Javascript等 rust,Javascript等 什么是Webassembly? 1. 所需求运⾏资源⼩(~64Kb for code and ~10Kb RAM) 2. 异构设备兼容性强(x86, ARM, RISC-V, MIPS, Raspberry Pi, Orange Pi … ) Serverless in MQTT Broker • 更好的代码执⾏环境抽象,它可以直接部署代码或应⽤程序到各种异构设备,⽽不需要开0 码力 | 31 页 | 3.95 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust 语言作出贡献。 7/562Rust 程序设计语言 简体中文版 : 13/562Rust 程序设计语言 简体中文版 $ rustup self uninstall 本地文档 安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 rustup doc 在浏览器中查看本地 文档。 任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查阅应用程序接口 (application programming interface,API)文档! 文本编辑器和集成开发环境(Integrated trait 以及该从 crate 中调用哪个方法,因 此每个 crate 有使用说明文档。Cargo 的另一个很棒的功能是运行 cargo doc --open 命令来构建所有本地依赖提供的文档并在浏览器中打开。例如,假设你对 rand crate 中的其他功能感兴趣,你可以运行 cargo doc --open 并点击左侧导航栏中的 rand。 新增加的第二行代码打印出了秘密数字。这在开发程序时很有用,因为可以测试它,不过在最0 码力 | 562 页 | 3.23 MB | 25 天前3
Comprehensive Rust(简体中文) 202412Android:为期半天的课程,介绍如何在 Android 平台开发中使用 Rust(AOSP)。课程内容包括 与 C、C++ 和 Java 的互操作性。 • Chromium:为期半天的课程,介绍如何在基于 Chromium 的浏览器中使用 Rust。课程内容包括 与 C++ 的互操作性以及如何在 Chromium 中加入第三方 crate。 • 裸机:为期一天的课程,介绍如何使用 Rust 进行裸机(嵌入式)开发。课程内容涵盖微控制器和应用 Rust 课程为期半天,旨在介绍 Chromium 浏览器中 Rust 的使用。课程内容 包括在 Chromium 的 gn 编译系统中使用 Rust,引入第三方 crate,以及与 C++ 的互操作性。 您需要能够构建 Chromium。为了提高速度,建议使用调试、组件构建方式,其他构建方式也可以使用。确 保所构建的 Chromium 浏览器可以正常运行。 裸机 Rust 深入探究裸机 Rust 还可以下载标准库的文档。可以同时安装多个版本的 Rust,rustup 会根 据需要让你在这些版本之间切换。 关键点: • Rust 有一个快速发布时间表,每六周就会发布一次新版本。新版本保持与旧版本的向后兼容性,并 添加新功能。 17 • 共有三个发布阶段:“稳定版(stable)”、 “测试版(beta)”和“夜间版(nightly)”。 • 新功能会先在“夜间版”上测试, “测试版”会每六周转为“稳定版”。0 码力 | 359 页 | 1.33 MB | 10 月前3
Hello 算法 1.1.0 Rust版从存储空间占用的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 字节;使用 UTF‑16 编码某些 非英文字符(例如中文)会更加高效,因为它仅需 2 字节,而 UTF‑8 可能需要 3 字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库优先支持 UTF‑8 。 第 3 章 数据结构 hello‑algo.com 63 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 5.1.4 栈的典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会对上一个网页执 行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支 持后退和前进,那么需要两个栈来配合实现。 ‧0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版从存储空间占用的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 字节;使用 UTF‑16 编码某些 非英文字符(例如中文)会更加高效,因为它仅需 2 字节,而 UTF‑8 可能需要 3 字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库优先支持 UTF‑8 。 第 3 章 数据结构 www.hello‑algo.com 63 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 5.1.4 栈的典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会对上一个网页执 行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支 持后退和前进,那么需要两个栈来配合实现。 ‧0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版从存储空间占用的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 字节;使用 UTF‑16 编码某些 非英文字符(例如中文)会更加高效,因为它仅需 2 字节,而 UTF‑8 可能需要 3 字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库优先支持 UTF‑8 。 第 3 章 数据结构 hello‑algo.com 63 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 5.1.4 栈的典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会对上一个网页执 行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支 持后退和前进,那么需要两个栈来配合实现。 ‧0 码力 | 383 页 | 17.61 MB | 1 年前3
WebAssembly 简介 - 陈思衡中运行高性能应用。它是一种低级语言,设计为编 译器目标,以在 web 浏览器中高效运行。 WebAssembly 介绍 WebAssembly 代码可以以接近原生的速度 运行,且具有很小的二进制大小和快速加 载速度。 # 高性能 WebAssembly 最初由 Mozilla、Google、 Microsoft 等主要浏览器供应商共同设计。 它现已在所有主流浏览器中实现,包括 Chrome、Firefox、Safari Chrome、Firefox、Safari 和 Edge。 # 标准稳定 # 多语言支持 WebAssembly 设计为安全地嵌入到网页 中。它提供一种沙箱环境,禁止直接访问 浏览器功能或用户数据。而是需要通过 host function 来访问宿主环境。 # 安全性 现在多种语言都有编译器支持 WebAssembly,如 C/C++、Rust、Go、Zig 等。 WebAssembly 简介 Photo / image 它定义了一组 WASM 模块可以调用的系统调用接口。WASI 的目的是让 WASM 模块可以访问底层系统的功能,比如文件系统、网络等。这使得 WASM 可以作为一个更广泛的 运行时,不仅仅局限于浏览器环境。WASI 当前定义了一组 POSIX 兼容的系统调用,让 WASM 模块可以访问文件系 统。未来 WASI 还会加入更多系统接口,为 WASM 提供更广泛的系统访问能力。 WebAssembly0 码力 | 24 页 | 773.46 KB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯Rust 与 HTTP 协议 以上 Rust HTTP 库主要支持的场景特点: ➢ 并发量、吞吐量需求较高 ➢ 网络环境稳定 ➢ 不太需要体现交互界面 ➢ 不太关注资源使用 比较适合构建浏览器、大型 WEB 服务器等。 终端 HTTP 通信场景浅析 Part 03 探讨终端场景下 HTTP 协议的主要使用场景,以及需要思考的问题 Rust China Conf 2022 – 2023 Shanghai, China 终端 HTTP 协议场景浅析 在终端上大多数使用 HTTP 协议的应用,主要是运用 HTTP 客户端的能力,向指定网址发起请求 来获取服务器上的资源。 例如使用浏览器 APP 访问网页,使用视频 APP 观看视频和直播,电商 APP 浏览商品页面等。 Rust China Conf 2022 – 2023, Shanghai, China 终端 HTTP 协议场景浅析0 码力 | 26 页 | 1.25 MB | 1 年前3
Rust语言核心竞争力-庄晓立航空航天 • 超级计算机 • 科学运算/机器学习 • 图形图像处理 • 虚拟现实 ……都有系统编程的身影 • 操作系统 • 虚拟机/容器 • 数据库 • 3D游戏引擎 • 网络服务器 • 浏览器引擎 • 编译器、解释器 • 三维建模/动画/渲染 数据中心 • CPU/GPU • 内存/硬盘 • 电力 • 网络流量 • 其他设备和人员维护费用 都是白花花的银子,“硬件很便宜”的说法不靠 系统编程对内存安全的需求十分强烈 • 内存不安全的后果非常严重 • ……“心脏出血”漏洞(Heartbleed)重创全球IT行 业 • ……源于OpenSSL【越界访问内存】 • OS/GLIBC/JAVA/浏览器等频繁爆出重大安全漏洞 • ……多与错误使用内存有关 • 传统C/C++语言放弃解决内存安全问题 • 程序员因疏忽或犯错很容易制造内存安全漏洞 • GC能基本保证内存安全,但牺牲了运行时性能 内存安全?0 码力 | 51 页 | 1.09 MB | 1 年前3
共 16 条
- 1
- 2













