Tauri/Vue打造桌面端RSS订阅器

4,282 阅读3分钟

Rss-Reader

Rss-Reader是一个桌面软件,安装软件后,可以通过手动添加RSSXML源,该软件会获取远程资源,并渲染在页面上,可以通过点击进行详情信息的浏览。

目前项目托管在Github,地址😀:github.com/peterroe/Rs…

UI效果:

image.png

😂虽然看起来是MAC的界面,但实际上是Windows版本的,目前也只进行Windows平台的程序打包

image.png

技术栈

实际上也没有什么特别难的技术,主要就是Vue3 + tauri-app/Rust,开发的时候需要用到Rust环境,在windows上配置过的小伙伴应该知道会有点复杂

起因

为什么我会想写这一个程序呢?

起初是因为对Rss技术比较感兴趣,Rss是什么可以查看维基百科关于RSS的介绍。Rss译为简易信息聚合,举例来说,就是一些支持Rss网站(经常是新闻、博客)会提供一个接口,这个接口返回符合Rss格式的XML文件,例如antfu大佬的博客,就支持RSS订阅。

这个XML的内容主要就是该网站的一些描述,以及最新更新的一些文章的摘要信息,包括文章的标题,时间,链接等。我们通过这个XML链接拿到这些信息后,就可以做一个信息整合的平台。

其次因为Rust在前端领域的应用,以及2021年的Tauri的趋势,让我也对Rust产生了浓厚的兴趣,Tauri可以看作electron的同类产品,不同之处在于Tauri前端使用操作系统的Webview,所以打包后的体积相较于electron打包后来说要小的多。但同样的缺点也是显而易见,既然依赖于操作系统,那么兼容性就是一个问题。但不管怎么说,Tauri的出现,让我们有了更多的选择,基于原生语言Rust,也让我们的运行开销要小得多。

再三思索后决定开发一个桌面端Rss订阅的应用。

实际上,Rss是一种比较老的技术了。所以市面上也有大量的订阅器产品,大多都是网站的形式,有少部分是客户端的。我认为现存产品的缺点有:

  • UI风格。因为有些产品出现的早,可能很长时间没有更新,界面风格还是十年前的,不太美观
  • 隐私问题。较为正式的产品都会要你登录才有使用权限,一旦暴露你的信息,邮箱就有可能收到各种推广信息
  • 广告/付费。二者必有其一吧,免费的产品一般意味着要通过广告给开发者带来收入,或者直接才用付费服务

所以我做这个产品决定着重于解决上述的问题,有一个更加现代化,个人主义的UI界面,免费开源无广告,也无需用户登录。

一个问题

既然是免费开源的,我希望这是一个纯前端的应用,不需要我支出额外的服务器资源,既然有这个限制,也会带来一些问题

例如前端获取资源一般情况下都是跨域的,尝试发送请求,会收到跨域的错误:

fetch('https://antfu.me/feed.xml') //blocked by CORS

一开始被难住了,要知道纯前端是无法解决这个问题的,但后端到后端是不会跨域的,而恰好Tauri又暴露了底层的能力,我们可以通过编写Rust发送请求,在把数据转发给前端,更直接的方式是使用Tauri封装好的api,前端可以直接使用。

最后

目前项目还在开发初期,已经发布了一个较为稳定的版本,感兴趣的小伙伴可以简单体验一下,欢迎更多的小伙伴参与贡献 :)