为什么我们需要一个桌面应用

原因实在太多,我们需要便捷地导出记录,需要在回答长度超长的时候自动加上“继续”,需要收藏一些很酷很实用的prompt......

(首先我假设你是一名如我一样习惯用IDEA开发的java仔)

为什么是用Rust编写

  1. 效率高、资源占用量低。
  2. 安全性高:Rust 是一种内存安全的语言,其所有操作都经过系统级别的严格代码检查,减少了运行期间的崩溃和内存泄漏等问题的出现。
  3. 可维护性高:Rust 能够更好地编写可维护的代码,并且支持面向对象编程和函数式编程,这使得开发人员能够更好地组织代码,易于理解和修改。同时,Rust 的模块化设计使得不同的开发人员可以同时在项目中工作,而不会相互干扰。
  4. 跨平台:Rust 广泛支持多种操作系统和平台,包括 Windows,macOS,Linux 和 Android 等,这使得开发人员能够设计适用于不同平台和设备的应用。

如何用Rust编写一个桌面应用

1.安装 Rust 语言工具链:首先,请确保你已安装了 Rust 编程语言工具链,包括 Rust 编译器 (rustc) 和包管理工具 (cargo)。可以通过访问 Rust 官方网站 并遵循说明来安装。

2.安装 Rust 插件:打开 IntelliJ IDEA,然后转到 "File" > "Settings" (Windows/Linux) 或 "IntelliJ IDEA" > "Preferences" (macOS)。在设置窗口中,选择 "Plugins",搜索 "Rust",然后单击 "Install"。安装完成后,重启 IntelliJ IDEA。

3.创建新的 Rust 项目:在 IntelliJ IDEA 中,选择 "File" > "New" > "Project",然后在项目类型列表中选择 "Rust"。按照提示配置项目设置,然后单击 "Finish" 以创建新项目。

4.添加 GUI 库:你可以选择的 GUI 库(如 GTK 或 Qt),在项目的 Cargo.toml 文件中添加相应的依赖项。例如,对于 GTK,需要添加如下依赖:

5.[dependencies] gtk = "0.9"

6.编写代码:使用 IntelliJ IDEA 编辑器编写 Rust 代码。Rust 插件会提供代码补全、语法高亮、错误提示等功能。

7.构建和运行:使用 IntelliJ IDEA 的内置终端或外部终端运行cargo build和cargo run命令,以构建和运行你的 Rust 桌面应用程序。

保姆教程的试错与验证

为了验证这个流程是否足够保姆级,我提前发给同事操作了一遍,最后在cargo run这里报错没有glib-2.0。这是因为在 macOS 上运行包含gtk依赖项的 Rust 项目时,需要先在系统上安装 GTK+ 和相关库。

可以通过使用 Homebrew 包管理器来解决这个问题。请按照以下步骤操作:

  1. 如果尚未安装 Homebrew,请访问 Homebrew 官方网站 并按照说明进行安装。
  2. 打开终端并运行以下命令以安装 GTK+ 及其依赖库:
  3. brewinstallgtk+3 brewinstalladwaita-icon-theme
  4. 安装 pkg-config 工具:
  5. brewinstallpkg-config
  6. 设置环境变量,让 Rust 编译器和链接器能够找到 GTK+ 库。在 shell 配置文件中(如/.bashrc、/.zshrc、~/.zshrc等),添加以下行:
  7. exportPKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
  8. 保存更改并重新加载 shell 配置文件,以使更改生效。比如你修改了~/.zshrc,则应运行以下命令:
  9. source~/.zshrc

Rust编写的桌面应用效果示例

当你看到这个hello world,就已经成功一大半了。因为已经有大佬开源了一套

https://github.com/lencx/ChatGPT 目前star过3w。很可惜的是,由于被盗用和潜在的法务风险,后续更新就不开源了,大家也可以基于这个版本发挥自己的创造力了。下图就是提供了便捷下载的一个示例。

作者:王梦津

内容来源:京东云开发者社区

【保姆级教程】如何用Rust编写一个ChatGPT桌面应用的更多相关文章

  1. 强大博客搭建全过程(1)-hexo博客搭建保姆级教程

    1. 前言 本人本来使用国内的开源项目solo搭建了博客,但感觉1核CPU2G内存的服务器,还是稍微有点重,包括服务器内还搭建了数据库.如果自己开发然后搭建,耗费时间又比较多,于是乎开始寻找轻量型的博 ...

  2. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  3. 自建本地服务器,自建Web服务器——保姆级教程!

    搭建本地服务器,Web服务器--保姆级教程! 本文首发于https://blog.chens.life/How-to-build-your-own-server.html. 先上图!大致思路就是如此. ...

  4. Eclipse for C/C++ 开发环境部署保姆级教程

    Eclipse for C/C++ 开发环境部署保姆级教程 工欲善其事,必先利其器. 对开发人员来说,顺手的开发工具必定事半功倍.自学编程的小白不知道该选择那个开发工具,Eclipse作为一个功能强大 ...

  5. RocketMQ保姆级教程

    大家好,我是三友~~ 上周花了一点时间从头到尾.从无到有地搭建了一套RocketMQ的环境,觉得还挺easy的,所以就写篇文章分享给大家. 整篇文章可以大致分为三个部分,第一部分属于一些核心概念和工作 ...

  6. 用 Python 写个贪吃蛇,保姆级教程!

    本文基于 Windows 环境开发,适合 Python 新手 本文作者:HelloGitHub-Anthony HelloGitHub 推出的<讲解开源项目>系列,本期介绍 Python ...

  7. Hive窗口函数保姆级教程

    在SQL中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据, ...

  8. 【良心保姆级教程】java手把手教你用swing写一个学生的增删改查模块

    很多刚入门的同学,不清楚如何用java.swing去开发出一个系统? 不清楚如何使用java代码去操作数据库进行增删改查一些列操作,不清楚java代码和数据库(mysql.sqlserver)之间怎么 ...

  9. [保姆级教程] 如何在 Linux Kernel (V5.17.7) 中添加一个系统调用(System call)

    最近在学习 <linux Kernel Development>,本书用的linux kernel 是v2.6 版本的.看完"系统调用"一节后,想尝试添加一个系统调用, ...

  10. 看我是如何用C#编写一个小于8KB的贪吃蛇游戏的

    译者注:这是Michal Strehovský大佬的一篇文章,他目前在微软.NET Runtime团队工作,主要是负责.NET NativeAOT功能的开发.我在前几天看到这篇文章,非常喜欢,虽然它的 ...

随机推荐

  1. baodoumi mybaitplus自增很大问题

    参考: https://blog.csdn.net/u012019209/article/details/124585933 @TableId(type = IdType.AUTO) private ...

  2. python计算三角形的三个边的边长,首先计算两个坐标点的距离

    # -*- coding:utf-8 -*- """ @author: 14931 @file: trianglearea.py @time: 2023/02/14 @d ...

  3. vivo全球商城:库存系统架构设计与实践

    作者:vivo官网商城开发团队 - Xu Yi.Yan Chao 本文是vivo商城系列文章,主要介绍vivo商城库存系统发展历程.架构设计思路以及应对业务场景的实践. 一.业务背景 库存系统是电商商 ...

  4. Maven学习笔记1:Maven基本介绍和安装配置

    一.认识Maven 官网 http://maven.apache.org/ 上面有最权威的说明,其中包括下载.安装.运行示例,但是是英文版的. Maven是什么 Maven是一个项目管理工具. 它有何 ...

  5. badapple最后一步,讲黑白图转为字符图,然后输出就行了。

    from PIL import Image import os char_s = list(" .,-'`:!1+*abcdefghijklmnopqrstuvwxyz<>()\ ...

  6. CF309E 题解

    11:30,过题.12:50,忘记做法. 吃饭时不该看未来日记的,Ynoj 害人不浅(确信). 以上为个人吐槽. 题目大意 不知道题目翻译是个啥...但讨论区有大佬给出了精确的翻译.我改得符合题目背景 ...

  7. openfoam并行通信探索(一)

    前言 最近在忙,快一两周没更新了,今天说下如何实现openfoam内的并行通信 为什么要并行通信 说到并行通信大家不要害怕啊,只是不同核之间数据传递,比如说咱们仿真开16个核,3号计算单元对4号计算单 ...

  8. Spring AOP——源码分析

    [阅读前提]:需了解 AOP 注解开发流程:链接 一.注解 @EnableAspectJAutoProxy 在配置类中添加注解@EnableAspectJAutoProxy,便开启了 AOP(面向切面 ...

  9. vulnhub靶场之HACKSUDO: 2 (HACKDUDO)

    准备: 攻击机:虚拟机kali.本机win10. 靶机:hacksudo: 2 (HackDudo),下载地址:https://download.vulnhub.com/hacksudo/hackdu ...

  10. SaaS、PaaS、IaaS区别

    SaaS SaaS 越久,觉得它个庞大的领域 SaaS 收入的"长江流域". 传统软件像买房:什么都得自己买,价格昂贵,一般人用不起.SaaS模式就像是租赁预先装修好的共享公寓,拎 ...