草庐IT

rust-tokio

全部标签

python - 从 Rust 函数返回字符串到 Python

我对Rust很陌生。如何从可在Python中使用的Rust函数返回String?这是我的Rust实现:usestd::ffi::CString;#[no_mangle]pubexternfnquery()->CString{lets=CString::new("Hello!").unwrap();returns;}以及调用它的Python代码:fromctypesimportcdll,c_char_plib=cdll.LoadLibrary("target/release/libtest.so")result=lib.query()print(c_char_p(result).valu

结合使用 Python 和 Rust

Python和Rust是非常不同的语言,但它们实际上非常搭配。但在讨论如何将Python与Rust结合之前,我想先介绍一下Rust本身。你可能已经听说了这种语言,但可能还没有了解过它的细节。什么是Rust?Rust是一种低级语言,这意味着程序员所处理的东西接近于计算机的“真实”运行方式。例如,整数类型由字节大小定义,与CPU支持的类型相对应。虽然我们很想简单地说Rust中的 a+b 对应于一条机器指令,但实际上并不完全是这样!Rust编译器链非常复杂。作为第一种近似的方法,将这样的语句视为“有点”真实是有用的。Rust旨在实现零成本抽象,这意味着许多语言级别可用的抽象在运行时环境中会被编译去掉

新政策惹众怒,Rust紧急澄清

作者|千山审校|云昭围绕开源的法律问题,讨论焦点往往集中在开源许可证、软件著作权等方面,商标的讨论却极少引人关注。事实上,关于开源软件以及开源软件的衍生产品的商标使用情况往往处于某种灰色地带。最近,Rust基金会正在就更新的商标政策征求反馈意见,没想到却在Rust社区引发了极大争议。图源:RustTrademarkPolicyCommentForm(google.com)尤其是新版草案中,禁止在Rust相关工具或用Rust编写的软件的名字中使用Rust,甚至在域名或子域名的部分也有针对性的限制。对此,有人直言,“希望基金会倾听社区意见,放弃这项政策,这将损害社区的善意和Rust语言的发展”。1

新政策惹众怒,Rust紧急澄清

作者|千山审校|云昭围绕开源的法律问题,讨论焦点往往集中在开源许可证、软件著作权等方面,商标的讨论却极少引人关注。事实上,关于开源软件以及开源软件的衍生产品的商标使用情况往往处于某种灰色地带。最近,Rust基金会正在就更新的商标政策征求反馈意见,没想到却在Rust社区引发了极大争议。图源:RustTrademarkPolicyCommentForm(google.com)尤其是新版草案中,禁止在Rust相关工具或用Rust编写的软件的名字中使用Rust,甚至在域名或子域名的部分也有针对性的限制。对此,有人直言,“希望基金会倾听社区意见,放弃这项政策,这将损害社区的善意和Rust语言的发展”。1

教程:Flutter 和 Rust混合编程,使用flutter_rust_bridge自动生成ffi代码

实践环境:ArchLinuxflutter_rust_bridge官方文档Flutter环境配置教程|Rust环境配置教程记录使用flutter_rust_bridge遇到的一些坑。假设我们已经配置了Fluuter与Rust环境现在直接使用flutter_rust_bridge模板创建自己的项目运行:gitclonehttps://github.com/Desdaemon/flutter_rust_bridge_template&&cdflutter_rust_bridge_template现在我们先让项目跑起来:flutterrun添加新代码:编辑native/src/api.rs安装代码生

rust的现状和未来发展

rust现状:StackOverflow的开发者调研显示只有7%的开发者在使用Rust,对比JavaScript、Python等语言,使用Rust的开发者占比并不高;但从2016年开始,Rust每年都是开发者最爱的编程语言。根据JetBrains2021年的调研报告,出于兴趣或为私人项目选择Rust的开发者仍然占大多数,真正用于工作的开发者仅占16%,而Go语言用于工作的开发者比例占到了61%,差距明显。各种招聘也表明rust岗位少,人才少。而java,go等很多。为什么叫好不叫座呢?我觉得大概原因可能有本身rust学习路线陡峭、编译时间长、一些特性不稳定比如异步编程等,以及外部原因比如发展时

【rust】| 06——语言特性 | 所有权

系列文章目录【rust】|00——开发环境搭建【rust】|01——编译并运行第一个rust程序【rust】|02——语法基础|变量(不可变?)和常量【rust】|03——语法基础|数据类型【rust】|04——语法基础|函数【rust】|05——语法基础|流程控制【rust】|06——语言特性|所有权文章目录1.所有权的概念2.所有权的规则3.变量的作用域4.所有权的移动/克隆4.1移动4.2克隆clone4.3copy5.所有权的转移5.1函数转移5.2返回值转移6.引用和借用6.1引用6.2借用6.3可变引用6.4空引用7.切片7.1字符串切片7.2其他切片7.3切片的范围7.4切片做函

python - 为什么 Python set 交集比 Rust HashSet 交集快?

这是我的Python代码:len_sums=0foriinxrange(100000):set_1=set(xrange(1000))set_2=set(xrange(500,1500))intersection_len=len(set_1.intersection(set_2))len_sums+=intersection_lenprintlen_sums这是我的Rust代码:usestd::collections::HashSet;fnmain(){letmutlen_sums=0;for_in0..100000{letset_1:HashSet=(0..1000).collect

python - 为什么 Python set 交集比 Rust HashSet 交集快?

这是我的Python代码:len_sums=0foriinxrange(100000):set_1=set(xrange(1000))set_2=set(xrange(500,1500))intersection_len=len(set_1.intersection(set_2))len_sums+=intersection_lenprintlen_sums这是我的Rust代码:usestd::collections::HashSet;fnmain(){letmutlen_sums=0;for_in0..100000{letset_1:HashSet=(0..1000).collect

Rust 基础系列 #4: Rust 中的数组和元组

在上一篇文章中,你学习到了Rust中的 标量数据类型。它们是整型、浮点数、字符和布尔值。在本文中,我们将会看看Rust编程语言中的复合数据类型。Rust中的复合数据类型是什么?复合数据类型可以在一个变量中存储多个值。这些值可以是相同的标量数据类型,也可以是不同的标量数据类型。Rust编程语言中有两种这样的数据类型:数组Array:存储相同类型的多个值。元组Tuple:存储多个值,可以是相同的类型,也可以是不同的类型。让我们了解一下它们吧!Rust中的数组Rust编程语言中的数组具有以下特性:每一个元素都必须是相同的类型数组有一个固定的长度数组存储在堆栈中,即其中存储的数据可以被 迅速 访问创建