RustCC分享会|非凸科技与开发者共同探讨Rust安全进化

news2024/11/18 20:45:09

10月15日,非凸科技受邀参加RustCC联合多家开发者社区组织的Global Tour of Rust技术分享活动,旨在为Rust开发者提供交流互动的平台,分享Rust语言的知识、经验和最佳实践。

活动上,非凸科技成都分公司研发总监赵海峰以“Rust安全进化”为主题,从编程语言的安全性、C/C++的安全性问题、Rust的解决方案以及Rust FFI四大角度进行了详细分享,并与现场观众展开了深度探讨。

安全性是指编程语言在实现过程中避免出现错误、漏洞和缺陷的能力,包括内存安全、类型安全、数据安全等。对此,赵海峰表示,“它可以更加方便地帮助工程师们表达意图,不会产生过多的未定义行为,这就是编程语言本身的安全性。”非凸科技作为一家量化科技公司,使用Rust语言最主要的原因是:Rust比C++安全。C语言作为C++的前身,其不安全性体现在:手动管理内存容易造成内存泄漏和缓冲区溢出、指针操作容易造成非法访问和内存损坏、没有严格类型检查的函数调用容易造成函数参数错误和返回值错误、缺乏异常处理机制、资源管理难度高、软件缺陷难以调查等问题。虽然C++在安全性上有所提升,提供了引用、智能指针、RAII、异常、泛型、显式类型转换等等机制,但是这些提升并不是强制性的,需要靠工程师的经验和严谨来保证安全性。

那么,针对C/C++的不安全问题,Rust有怎样的解决方案呢?Rust通过所有权系统来管理内存、借用检查器来检查对对象的访问、通过生命周期来标识资源的作用域,以及通过Option、Result等设施来处理错误和异常。赵海峰表示,“Unsafe不是给Rust的安全性开一个口子,而是让Rust更加安全,它告诉调用者有更多的contracts。”Rust Unsafe中的unsafe block、unsafe function以及unsafe traits,可以使用标准库的unsafe函数,操作原始指针、union和mutable static variables,还可以通过FFI调用其他语言的代码。除此之外,Rust的其他安全检查仍然有效,比如类型检查、生命周期检查、索引检查等。“将一个block标记为unsafe,是为了明确告诉使用者,它有其他的contracts需要满足,否则就可能出现未定义行为。所以,一定要注意这些约束,写出的代码才会更安全。”赵海峰补充道。

当前,券商、私募等金融机构提供的接口(SDK)基本是C++语言,很多量化公司也会基于业务需求而去选择C++作为开发语言。赵海峰表示,“FFI是Rust与C/C++之间的桥梁,允许Rust代码调用C/C++库,反之亦然。”FFI允许Rust与C/C++代码之间进行高效和简洁的交互,FFI支持多种操作系统和硬件平台,使得Rust与C/C++代码可以在各种环境中运行,通过bindgen 或autocratic等crates可以方便地自动生成C/C++到Rust的bindings代码。除此之外,赵海峰还通过代码案例,详细阐述了异步回调、跨越语言边界的unwind等在使用FFI时的安全化处理。

交流环节,大家结合自身Rust代码实践情况,分享了诸多开发经验和技术挑战,现场讨论气氛活跃又热烈。未来,非凸科技希望携手更多Rust开发者、爱好者,共同探索Rust世界及其不断发展的生态系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1124799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【框架源码篇 05】Spring源码篇-ApplicationContext

Spring源码篇-ApplicationContext 前面通过手写IoC,DI、AOP和Bean的配置。到最后ApplicationContext的门面处理,对于Spring相关的核心概念应该会比较清楚了。接下来我们就看看在Spring源码中,对于的核心组件是如何实现的。 一、ApplicationC…

光环云入选“北京市算力互联互通试点参与企业”!

为进一步贯彻落实工业和信息化部等六部委联合印发的《算力基础设施高质量发展行动计划》,扩大北京市算力互联互通试点参与范围,助力建设全球数字经济标杆城市,北京市通信管理局组织相关专家对申报第二批参与试点企业开展评估,光环…

docker 部署服务案例

mysql Centos7为例 NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI_COLOR"0;31" CPE_NAME"cpe:/o:centos:cento…

mysql之通过表名来搜索库名

1、经常遇到查日志时候知道表名,但是不知道在哪个库下面,可以通过此sql语句查询。 SELECT * FROM information_schema.TABLES WHERE table_name tb_xxxxxx;

python之代理ip的配置与调试方法详解

代理IP在Python中是一种强大的工具,它可以用于隐藏真实IP地址、绕过访问限制、提高数据爬取和网络请求的效率等。下面将详细介绍Python中代理IP的配置与调试方法,帮助您更好地理解和应用代理IP。 1. 选择合适的代理IP 在使用代理IP之前,需要…

vtk 多边形绘制 vtkPolygon 三角形 矩形 多边形

vtk 可以通过 vtkPolygon 绘制 三角形 矩形 多边形 目录 vtk 可以通过 vtkPolygon 绘制 三角形 矩形 多边形 效果: 源码: 效果: 三角形 矩形: 多边形: 源码: #include "vtkAutoInit.h" VTK_M…

通过电脑操作安卓手机数据恢复最好的几个工具

在本次评测中,我将介绍适用于 PC (Windows 10/11) 的最佳 Android 数据恢复软件,它可以帮助您从通过 MTP 连接的手机或平板电脑上恢复文件和数据。 2023 年适用于 PC 和 Mac 的最佳安卓数据恢复软件 1、U1tData安卓数据恢复(奇客软件&#xf…

599L是什么芯片,sot23-6封装591NW

60转5v-599L芯片具有以下特点: - 600mA的连续输出电流能力 - 宽输入工作范围,从4.5V至60V - 集成了80V、550mQ高侧和80V、350mQ低侧功率MOSFET开关 - 高达95%的效率 - 内部软启动功能,限制开机时的浪涌电流 - 内部补偿功能,减少外…

程序员空闲时间能不能找其他副业?还是该继续卷技术?

我认为这是个伪命题!程序员都在996/007,哪来的空闲时间,这是让他们不睡觉吗? 那些有空闲时间的程序员应该是还没找到工作的程序员吧!主业都没有,谈什么副业。 假如有少部分人,是属于985的程序…

超实用的跟圈和一键转发好友朋友圈功能

一键转发朋友圈/跟圈 想转发别人的朋友圈内容,通常需要手动复制粘贴,一个个复制保存实在是太麻烦耗费时间。 有时候咱也不可能随时都看朋友圈嘛,那又想及时转发朋友的圈的,有什么办法可以轻松实现呢? 操作步骤 单击…

黑客为什么不 入侵银行一夜暴富

前言 厉害的黑客只需要入侵银行系统,改动一下自己账户余额数字,身家不就可以轻松过亿了吗? 然而事实却是没有哪个黑客做成这件事。大家要知道,银行的网站和网上银行系统是分开部署的。黑客成功入侵了银行的网站,他能…

推荐一款可以识别m3u8格式ts流批量下载并且合成mp4视频的chrome插件——猫抓

https://chrome.google.com/webstore/detail/%E7%8C%AB%E6%8A%93/jfedfbgedapdagkghmgibemcoggfppbb?utm_sourceext_app_menuhttps://chrome.google.com/webstore/detail/%E7%8C%AB%E6%8A%93/jfedfbgedapdagkghmgibemcoggfppbb?utm_sourceext_app_menu 网页媒体嗅探工具 一…

(十一)Python模块和包

前面章节中,我们已经使用了很多模块(如 string、sys、os 等),通过向程序中导入这些模块,我们可以使用很多“现成”的函数实现想要的功能。 那么,模块到底是什么,模块内部到底是什么样子的&…

生成式AI革命对亚马逊的电商业务是威胁还是机遇?

来源:猛兽财经 作者:猛兽财经 总结: (1)当所有人都在关注生成式AI是如何威胁谷歌(GOOG)的搜索业务之际,投资界却忽视了一个事实,即:它也给亚马逊(AMZN)的电商业务带来了威胁。 &…

win10安装 nvm + angular

① 安装nvm② 配置全局的node_modules2.1 新建[node_global] 、[node_cache]文件夹2.2 cmd窗口执行命令(设置npm的路径)2.3 配置环境变量 ③ 安装angular-cli④ 检查环境版本 指路,简易版安装指南,有安装基础的可以看这里&#xf…

应用3之Like运算符的应用

《VBA经典应用69例》(10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家…

自然语言处理---RNN经典案例之构建人名分类器

1 案例介绍 关于人名分类问题:以一个人名为输入, 使用模型帮助判断它最有可能是来自哪一个国家的人名,这在某些国际化公司的业务中具有重要意义,在用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项&#xff…

高防回源ip被源站拦截怎么办

​  在进行网站运营过程中,我们经常会遇到DDoS攻击等网络安全威胁。为了保护网站的正常运行,很多企业选择使用高防服务来应对这些攻击。有时候我们可能会遇到一个问题,就是高防回源IP被源站拦截的情况。 那么,当我们发现高防回源…

单线程模型想象不到的高并发能力、多路复用是效率杠杆

文章目录 🍊 多路复用🎉 redis的多路复用模式📝 应用对外提供服务的过程📝 select📝 epoll📝 多路复用的定义📝 多路复用的举例📝 多路复用的实现🔥 过程一:数…

a-table 修改默认的空状态描述

1 默认的空状态样式 simple图片和暂无数据样式 a-table api 意思是修改了local属性中的emptyText就可以改变内容了 :loacl"{emptyText:自定义内容}"但是这样写的话 就不显示图片了 可以使用a-empty 来自定义 2 空状态样式修改 :loacl"loacl" data(){re…