前言

最近我在微博转发了亚马逊对Rust和Go语言的对比。亚马逊发文力捧 Rust ,Go 技术负责人:别“拉踩”我们https://weibo.com/2150275531/LlkxkvTrl

AWS的文章对Rust的推崇溢于言表。引起了业内的震动。再次把cloud native, green programming language 这些问题推到舆论风口。那我们就多关注一下Rust

Rust学习并不是很容易。如果大家学习过C++的语言特性,并且深入了解C++的标准库auto pointer和Boost扩展库里的smart pointer的话,我觉得大家会比较容易了解Rust的强类型和内存安全的一些考虑。这部分大家可以比较学习,横向比较确实是一种提高自己的方法。

但是真正用Rust做一些企业真实的应用。我觉得只是学习语言特性是不足够的。底层库或者程序框架的开发者对语言特性的要求比较高。而我们要跨越谈论语言特性,和其他语言之间做比较的时候。我们还是要通过语言的生态,企业开发的支持来做一些探索。这样,才能真正落地,应用到生产环境里。

我们探索的脚步不能停止。我将对一些比较重要的问题展开讨论。

入门资料

在学习Rust的时候,我们再语言入门的时候一定有很多的资料。我可以推荐大家看一些基本的资料。

Rust学习资源和路线_weixin_34174132的博客-CSDN博客Rust学习资源和路线来源 https://rust-lang-cn.org/article/23学习资源The Rust Programming Language堪称Rust的"The Book",是目前最权威的Rust系统教程,入门必读。Rust by Example实例化的讲解方法,通过一个个可实际运行的例子去介绍Rust的特性和用法,有的时候,代码是最好的老师。Frequen...https://blog.csdn.net/weixin_34174132/article/details/85975606?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164826295516780261980079%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164826295516780261980079&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-85975606.142%5Ev5%5Epc_search_result_cache,143%5Ev6%5Econtrol&utm_term=rust%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF&spm=1018.2226.3001.4187

Rust学习资料汇总_chirpyli的博客-CSDN博客_rust学习列举一些学习Rust的好资料,方便平常学习与查阅。大部分文档在官网Grow with Rust一节都有列出,另一部分是平常学习时涉及到的文档资料。The Rust Programming Language这本书当然是要第一本阅读的了,入门首选。Rust对单元测试的支持是非常友好的,可参考Writing Automated Tests这一章。Rust by Example通过代码示例...https://blog.csdn.net/s_lisheng/article/details/105778760?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164826295516780261980079%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164826295516780261980079&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-105778760.142%5Ev5%5Epc_search_result_cache,143%5Ev6%5Econtrol&utm_term=rust%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF&spm=1018.2226.3001.4187

多线程

在官方的教程文档中,我们可以看到multi-thread的用处和如何使用线程池。官方文档示例里给出了跟好的例子。

当然如果我们需要一个有生产强度的并行库。我们可以使用Rayon, tokio_threadpool等等。

Rayon

GitHub - rayon-rs/rayon: Rayon: A data parallelism library for RustRayon: A data parallelism library for Rust. Contribute to rayon-rs/rayon development by creating an account on GitHub.https://github.com/rayon-rs/rayon

tokio_threadpool

GitHub - gatoWololo/tokio-threadpool-0.1.18: Modified version of tokio-threadpool for Servo-rr-channel compatibility.Modified version of tokio-threadpool for Servo-rr-channel compatibility. - GitHub - gatoWololo/tokio-threadpool-0.1.18: Modified version of tokio-threadpool for Servo-rr-channel compatibility.https://github.com/gatoWololo/tokio-threadpool-0.1.18

异步处理框架

Rust里最大名鼎鼎的一部框架就是 Tokio。这个框架是很多框架的基础。框架本身的文档还是非常的详尽。而且在Github项目代码目录,有非常详细的实例程序。我们可以在 examples 这个位置找到。我是非常推崇直接通过例子来学习框架。

对于异步处理框架,我们还是需要仔细了解异步框架的原理。大家可以看一下 Async in Depth 来更深入的了解Async的实现原理。这对异步系统的理解和调优相关的任务会有比较好的帮助。

Tonic

Tokio 本身提供了一个 gRPC 的实现 Tonic。用Tonic开发其实也是比较容易的。我认为gRPC本身的效率还是非常高的。

我们可以参照这篇文章实现一个基本的三层应用后端。How to use gRPC with Rust Tonic and Postgres database with examples - DEV CommunityIn this post, we will learn how to use Rust Tonic gRPC crate and implement CRUD with Postgresql... Tagged with rust, tonic, postgres, grpc.https://dev.to/steadylearner/how-to-use-grpc-with-rust-tonic-and-postgres-database-with-examples-3dl7

或者使用tonic + sqlx来实现数据库连接也可以。

hhttps://github.com/rezmuh/todo-tonic-sqlx-refinery-barrelhttps://github.com/rezmuh/todo-tonic-sqlx-refinery-barrelhttps://github.com/rezmuh/todo-tonic-sqlx-refinery-barrel当然Tonic本身的examples也可以给大家大的帮助。

Tracing

Tracing提供了一个比较统一日志体系。他的重要性和java里的log4j一样。所以这也是基本的企业应用的基础件。日志的重要性大家都知道吧?

数据库访问

数据库的重要性肯定是不言而喻的。Rust的数据库支持有哪些呢?下面这个文章给了我们一个比较全面的介绍。

11 database drivers and ORMs for Rust that are ready for production - LogRocket Bloghttps://blog.logrocket.com/11-database-drivers-and-orms-for-rust-that-are-ready-for-production/

Diesel

GitHub - diesel-rs/diesel: A safe, extensible ORM and Query Builder for RustA safe, extensible ORM and Query Builder for Rust. Contribute to diesel-rs/diesel development by creating an account on GitHub.https://github.com/diesel-rs/diesel

SQLX

SQLX是本身是一个基于Tokio的异步框架。所以应该基本上可以其他的异步框架进行使用。

GitHub - launchbadge/sqlx:

Rust企业落地探索相关推荐

  1. 选择 Go 还是 Rust?CloudWeGo-Volo 基于 Rust 语言的探索实践

    本文整理自 CloudWeGo 开源一周年技术沙龙活动中字节跳动基础架构服务框架资深研发工程师吴迪的演讲分享,技术沙龙主题为<字节高性能开源微服务框架:CloudWeGo>. 本文将从以下 ...

  2. 百度CTO王海峰:亚洲丰富实践场景推动AI技术落地探索

    本文已在飞桨公众号发布,查看请戳链接: 百度CTO王海峰:亚洲丰富实践场景推动AI技术落地探索 王海峰 百度首席技术官 亚洲地区国家众多,发展水平差异显著,这背后意味着有丰富的实践场景,可供AI技术落 ...

  3. 【华为云技术分享】云图说 | ContainerOps推出灰度发布模式,助力企业落地容器DevOps最佳实践

    容器交付流水线(ContainerOps)是华为云容器镜像服务(SWR)推出的面向从源代码到生产上线全流程服务,提供镜像仓库.镜像构建.版本管理.交付流水线等一系列服务,助力企业落地容器DevOps最 ...

  4. 容器技术:华为云如何帮助企业落地Kubernetes

    作为Kubernetes 最早的采用者之一,华为自2013年起在内部多个产品落地Kubernetes,在这个过程中,围绕着本文上述的三个基本性问题,以及规模化生产环境落地场景,华为发现并解决了一些功能 ...

  5. 【大数据千人会微信群20140827期交流纪要】傅志华-大数据如何在企业落地

    [大数据千人会微信群分享]20140827期:傅志华-大数据如何在企业落地 中国互联网协会大数据工作委员会(筹)推出"大数据千人会"论坛,每周三晚8点30分开始,在"中国 ...

  6. 容器技术在企业落地的最佳实践

    作者 | 易立  阿里云资深技术专家 导读:近年来,容器技术及相关应用得到了国内外越来越多的关注度.在国外,容器技术已经形成了较成熟的生态圈:而在国内,金融企业.互联网企业.IT 企业积极投入容器技术 ...

  7. excel服务器okr系统,OKR工具能帮企业落地OKR吗?从飞书OKR看专业工具的价值

    原标题:OKR工具能帮企业落地OKR吗?从飞书OKR看专业工具的价值 OKR之风开始盛行,越来越多企业组织开始看到OKR的巨大价值,并不断尝试将其落地到企业运营当中.落地OKR的价值已经被许多企业证实 ...

  8. 活动预告:专访Velo,跨境金融的商业落地探索 | TI对话首席

    ↯ 要点总结 9月24日对话首席诚邀Velo Labs首席架构师 James Wu,与您一起探讨:跨境金融的商业落地探索,欢迎扫码加入! TokenInsight • END 微信小程序 Tokeni ...

  9. 提前预约赢限量周边~CloudWeGo:从开源、开放到企业落地

    开源作为软件开发的基石,已经成为全球数字科技创新发展的一大趋势.尤其是在基础架构领域,开源项目的推出和最终落地驱动了包括云原生在内的大量技术创新,使企业业务加速迈向敏捷.灵活的云时代. CloudWe ...

最新文章

  1. 如何正确地运用人工智能模型?
  2. Tornado,展示一下模板渲染
  3. 自动化生成 Openstack 新项目开发框架
  4. html实战例子: 在title左侧添加logo
  5. 2021牛客多校1 - Journey among Railway Stations(线段树区间合并)
  6. padding 后尺寸变化 设置_padding margin border 和元素大小
  7. U盘分区与启动是怎么回事?
  8. 关于MIUI悬浮窗权限问题的解决方案
  9. android 图片上传图片 报Socket: Broken pipe
  10. C++--第23课 - STL简介
  11. VC中Radio控件的用法(VC2008)
  12. java仓库管理设计报告_基于javaweb的仓库管理系统的设计和实现 毕业论文
  13. 微型计算机的始祖:Altair 8800 | Linux 中国
  14. 利用python进行识别相似图片(一)
  15. 游戏防外挂、破解解决方案
  16. jQuery购物车 商品数量加减和小计
  17. 华为无线认证服务器类型,华为ap 配置认证服务器
  18. 71外链论坛_免费发外链平台
  19. 完整版 :数据分析师的一天
  20. 前端UI:element-ui,ant-design-vue

热门文章

  1. can波特率及总线占有率计算
  2. Flutter dio add/set报错
  3. C语言中include是什么?
  4. 07 verilog基础语法-条件语句
  5. xilinx官网申请IP
  6. java发送邮件(一封邮件发给多人)
  7. 想开发手机APP软件,首先要弄清楚以下10点
  8. Android 收音机相关知识
  9. android手机听广播,RadioTime让你的android也能听收音机
  10. Unity问答——请教一下NGUI的图片转换问题