根据IT168的评论意见来看, Rust这种语言在开发生涯中十分注重执行性能和内存方面的安全保障, 它的设计初衷是为了在未来能够逐渐替代掉C++以及C这些老旧的程序设计语言, 不过必须要承认的是, 想要实现这样一个彻底取代的目标, 还需要耗费很长一段时间的去等待和见证。
值得肯定的是, 在目前的这个阶段, Rust可以取代传统上由部分C语言库占据的位置。用来统计和构建机器学习的系统里边的大部分内容都是用C语言写出来的, 因此, 模块被重写的可能性是特别大的。
虽然Rust是编译型语言, 是解释型语言, 但是, 由于两者中的ABI(应用程序二进制接口)在设计上存在相似性, 因此, Rust代码可以应用到上。现在, 一些Rust包已经被用于绑定。此外, 还可以通过Rust库将C语言的API应用到上。
因为有很多新项目在应用,所以现在去开发Rust的库变得更简单了, 这也让整个部署含有Rust二进制文件的软件包工作变得更加轻松。下面这4个项目在实际里的应用情况表明, 把Rust和现有技术结合起来使用, 在某些场合完全具备取代C加加以及C++的能力。
Rust-
定义: Rust-就是在Rust语言中, 运行时的一组绑定情况。这里的描述是指, Rust程序与某个系统连接起来之后, 会使用这个系统的接口规范来运行具体的程序代码。同时, 还需要在Rust所处的开发环境之下, 和面向对象编程的机制一起进行工作的操作过程。
关于使用对象方面的情况, 这里所指的合适的人选是指那些已经非常熟练地掌握了使用控制能力的Rust语言的程序员。
特别需要引起大家注意的一点是, 由于在管理对象的方式上存在一定的问题, 所以这就可能导致Rust语言本身所具有的那些关于内存安全的性能方面的好处和优势不能完全地发挥出来, 因此在实际的使用过程当中一定要保持谨慎的态度。
PyO3
所谓定义, 就是对于做Rust开发的人员来讲, PyO3这个项目, 它是提供了两个方向的基本方法, 是用这些方法去编写有绑定功能的Rust软件的, 因为Rust程序是可以与对象进行交互的, 也是可以同解释器接口对接的, 并且它是可以与C模块所采用的, 同样是同样的方式把Rust应用给引入进去的。
PyO3所能支持的功能比较有限, 但是实现最基本的功能还是可以的, PyO3所使用的惯用Rust功能是通过装饰既有代码的方式去实现在aware方面的工作。
这合适的人员指的是, 那些去编写代码, 并且这个程序代码要和正在执行的东西进行直接交流交互的那种程序员。
Snaek
这个项目的早期情况是, Snaek允许开发人员按需创建加载动态的Rust库, 不过该Rust库不依赖于静态连接的运行环境。如果在Rust代码中使用Snaek, 则无需专门针对它编写特定内容, 只需公开与C语言兼容的方法即可。
但Snaek存在一个潜在缺点, 即不能使用那个是与C代码对接的标准库, 实际上它使用的是cffi这一方案。
cffi这个库是由PyPy那个团队开发的, 它是作为一种备选方案存在的, 所以说来学习cffi这个东西其实并不难, 可是如果用户真的决定要使用cffi的话, 那么一些那些已经在使用的现成项目就都得重新进行编写和更改。
适合用那些把通过Rust写出来的办法给放到脚本里头去, 或者就是想再深入地去琢磨琢磨的, 会写Rust的这个类型的程序开发人员。
定义: 这个项目所涉及的, 是在把二进制形式的模块跟库进行绑定的操作期间, 容易出现的、各种常见的问 题。如果使用从模板里面创建项目这样的方式, 那些可用的模板里面的 Rust Cross- , 会让把Rust写的二进制文件去和库捆绑在一起的这个过程, 变得相对简化一些。
该项目的非常重要的目标是能够生成二进制分发, 也就是Wheel格式, 这样做的话就不需要最终用户自己去编译Rust代码了。
适用人员指的是那些使用了Rust绑定, 并且以此为基础去创建了大量的项目, 或者是正在努力地想把某个项目进行公开发布的这些程序员。