#并行 #用户界面 #异步 #StackOverflow #StackOverflow #CLI

bin+lib falion

一个开源工具和crate,用Rust编写,注重隐私,用于快速、高效和异步/并行地通过CLI或GUI与编程资源(如StackOverflow)交互。

5个版本 (稳定版)

1.0.3 2024年5月2日
1.0.2 2024年3月18日
1.0.0 2024年3月14日
0.2.0 2022年4月22日

#329 in Web编程

MITGPL-3.0-only…

4.5MB
4K SLoC

Contributors Forks Stargazers Issues MIT License Crates.io


Logo

一个开源工具和crate,用Rust编写,注重隐私,用于快速、高效和异步/并行地通过CLI或GUI与编程资源(如StackOverflow)交互。

查看文档

查看演示 · 报告错误 · 请求功能

目录
  1. 关于项目
  2. 🏁 入门
  3. 🪧 使用
  4. 🗾 路线图
  5. 💁 贡献
  6. ❓ 常见问题解答
  7. 📟 Semver
  8. 🔰 安全性
  9. 🪪 许可证
  10. 📧 联系方式
  11. 📄 模板
  12. 🦾 致谢

🪽 关于项目

Falion 是一个由 Rust 创建的创意开源工具,旨在改善编程资源交互,优先考虑 隐私速度效率,针对 StackOverflowGitHub Gists 等资源。

该项目旨在解决编程世界中快速、私密 获取信息的挑战,使用 DuckDuckGo 进行 安全私密 搜索结果。仅使用 HTTPS 连接和 无JavaScript纯HTML

Falion 非常 快速高效,具有异步结果检索和 并行 抓取。从每个资源获取五个结果只需 大约1-1.5秒。这意味着,当你看到结果时,所有内容都已加载并准备好访问。

它提供以用户为中心的界面,包括具有类似 VIM 键绑定(适用时)的 命令行界面 (CLI)图形用户界面 (GUI)

跨平台支持 确保它可以在 LinuxMacOSWindows 上运行。

它可以用作独立工具或作为 crate 集成到 Rust 项目中,增强开发能力。


关键亮点

隐私优先:它使用 DuckDuckGo 查找结果,坚持使用 HTTPS 连接,并保持无跟踪。

闪电速度:得益于异步结果检索和并行抓取,您可以在瞬间获得答案。

以用户为中心的界面:在类似 VIM 的 CLI(适用时)和轻量级 GUI 之间进行选择,以获得您偏好的体验。

跨平台:在 Linux、MacOS 和 Windows 上无缝运行。

无速率限制:在正常使用下无中断地浏览。

多功能:用作独立工具或将它作为 crate 集成到您的 Rust 项目中。


支持的资源

这些是适用于大多数流行语言的通用资源。未来还将增加更多资源,并支持自定义资源。此外,您可以在此处 请求资源

  • StackOverflow 是一个编程问答网站。
  • StackExchange 是一个由社区驱动的问答网站网络。
  • GitHub Gists 是一个用于分享和协作代码片段的平台。
  • GeeksForGeeks 是一个计算机科学和编程的在线学习平台。
  • DuckDuckGo 结果 只是正常呈现为文本的结果,没有像上面那样美好,作为最后的手段。

如果您有任何问题,请查看 常见问题解答 (FAQ)

(返回顶部)

💡 功能

  • 与编程资源交互
    • StackOverflow - 无需多言
    • StackExchange- 不同论坛的索引
    • Github Gists - 用于代码片段和指南
    • GeeksForGeeks - 有各种优秀的编程资源
    • DuckDuckGo - 只是为了您不需要离开程序,您也有基本结果的 HTML 版本
  • 隐私关注
    • DuckDuckGo 用于结果
    • 仅请求 HTTPS 请求
    • 只获取 HTML,不进行不必要的跟踪
  • 非常 高效
    • 结果异步检索
    • 资源并行抓取
    • 立即查看页面,在结果出现时内容已经加载完成
    • 大约需要 1 秒到 1.5 秒来获取结果(及内容)。每个资源 5 个结果
    • 利用 Rust 的性能
    • 进行了许多 优化
    • 资源消耗轻量(GUI 和 CLI)
  • CLI 界面
    • 快速 和渲染优化界面
    • 类似 VIM 的键绑定(适用时)
    • 简单直观
  • GUI 界面
    • 轻量级 界面
    • 简单
    • 响应式
  • 跨平台
    • Linux
    • MacOS
    • Windows
  • 不会在正常使用下速率限制
  • 项目也可以 用作 crate
  • 结果最多缓存 7 天
  • Web UI
  • 自定义资源支持
  • 可配置
    • 可从程序编辑配置文件

(返回顶部)

🎥 视频展示

展示

(返回顶部)

🍔 构建

(返回顶部)

库存库和这些优秀的第三方库

(返回顶部)

🏁 入门

🏃 运行程序

平台 版本
Windows 7 及以上
Linux 任何版本
MacOS 10.15 及以上
所有平台 所有以上

(返回顶部)


🪟 Windows

便携式EXE

  1. 转到 发行标签 并下载 falion-windows.exe 文件(可能需要点击显示全部)。
  2. 双击您刚下载的 exe 文件,程序即可运行。
  3. 如果您对它不了解,可以查看 使用标签
  4. 您还可以创建一个桌面快捷方式和放入 开始菜单 的快捷方式。

安装程序

  1. 转到 发行标签 并下载 falion-windows-installer.exe 文件(可能需要点击显示全部)。
  2. 双击安装程序,就像其他安装程序一样进行操作。
  3. 现在,如果您查看开始菜单(或者在您勾选创建桌面快捷方式的情况下在桌面上),您将看到一个 falion 的快捷方式,就像运行其他程序一样运行它。
  4. 如果您对它不了解,可以查看 使用标签

(返回顶部)


🐧 Linux

⚠️ 依赖项: openssl,可能已经安装。

(返回顶部)

便携式Bin

  1. 转到 发行标签 并下载 falion-linux 文件。
  2. 双击您刚下载的 bin 文件,程序即可运行。
  3. 如果您对它不了解,可以查看 使用标签
  4. 您也可以下载 falion-linux.tar.gz 文件,然后将 linux/desktop/falion.desktop 提取到 $HOME/.local/share/applications,linux/desktop/icons 提取到 $HOME/.local/share/icons,以便在开始菜单中创建快捷方式和将 falion 放入 /usr/bin/。

AppImage

  1. 转到 发行标签 并下载 falion-linux.AppImage 文件。
  2. 双击下载的AppImage,程序就会正常运行。如果您还没有安装,可以安装AppImageLauncher,这样在启动AppImage时会有提示,询问您是否想要集成并运行它。如果这样做,它将就像您安装了它一样出现。
  3. 如果您对它不了解,可以查看 使用标签

AUR

PKGs包括:

  • falion-bin(对于预编译,这是唯一可用的,因为在pkgbuild中构建失败的原因)

a. 如果您有一个AUR管理器(如paruyay,您应该安装一个)

  1. 就像使用任何其他AUR包一样,选择您喜欢的类型,然后可以运行以下命令,例如。

    paru -Sy falion-bin
    
  2. 在应用程序启动器中搜索falion并启动它。

  3. 如果您对它不了解,可以查看 使用标签

b. 手动从AUR克隆和构建它

  1. 首先安装基本构建依赖项,如果您还没有安装

    sudo pacman -Sy gcc base-devel --needed
    
  2. 然后克隆构建脚本

    git clone https://aur.archlinux.org/falion-bin.git
    
  3. 进入新克隆的存储库并运行以下命令来构建软件包

    makepkg
    
  4. 为了安装软件包,运行以下命令(其中*是任何其他字符的占位符)

    sudo pacman -U falion-*.pkg.tar.zst
    

Nix文件

您正在使用NixOS,不用担心,我为您准备好了。

  1. 转到发布标签并下载falion-linux.nix文件。
  2. 如果您使用flakes,则将其放入pkgs文件夹中,并在顶部添加您的标签(例如my)。如果没有,只需将代码添加到您的default.nix文件中,然后以这种方式安装。
  3. 如果您对它不了解,可以查看 使用标签

Deb文件

您应该使用应用镜像。这不会提供桌面文件,您需要从命令行运行它。这里只是作为另一种需要的手段。我会尽力创建一个ppa。

  1. 转到发布标签并下载falion-linux.deb文件。

  2. 在下载的文件夹中打开终端并运行以下命令

    sudo dpkg -i falion-linux.deb
    
  3. 在终端中运行falion,应用程序就出现了。

  4. 如果您对它不了解,可以查看 使用标签

  5. 您也可以下载falion-linux.tar.gz文件,并将linux/desktop/falion.desktop提取到$HOME/.local/share/applications,将linux/desktop/icons提取到$HOME/.local/share/icons,以便有启动菜单快捷方式。

(返回顶部)


🍎 macOS

(返回顶部)

便携式二进制文件

  1. 转到发布标签并下载falion-macos文件。
  2. 双击您刚下载的 bin 文件,程序即可运行。
  3. 如果您对它不了解,可以查看 使用标签
  4. 您可能还想将其放在特殊位置并创建一个快捷方式

应用文件夹

便携式二进制文件非常相似,唯一的真正区别是这个有一个图标。

  1. 转到发布标签并下载falion-macos-app.tar.gz文件。

  2. 使用您的归档管理器或在终端中运行以下命令

    tar -xzf falion-macos-app.tar.gz
    
  3. 双击您刚刚下载的应用程序文件夹,程序就会运行。

  4. 如果您对它不了解,可以查看 使用标签

DMG安装程序

就像您使用的任何其他dmg安装程序一样。

  1. 转到发布标签并下载falion-macos-installer.dmg文件。
  2. 双击运行dmg。
  3. 将应用程序文件夹拖到Applications文件夹。
  4. 完成,您已经安装了应用程序,现在应该在启动器中看到它。
  5. 如果您对它不了解,可以查看 使用标签

Homebrew

注意,这种方法不包含桌面条目。您需要运行falion命令或自己创建一个快捷方式,这非常简单。

  1. 您需要安装homebrew,如果您还没有安装,请运行以下命令

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 您需要添加我的tap存储库,运行以下命令即可

    brew tap Obscurely/tap
    
  3. 安装软件包。

    brew install falion
    
  4. 如果您对它不了解,可以查看 使用标签

(返回顶部)


🚉 所有平台

此方法适用于任何Linux发行版、Windows 10/11和macOS(Big Sur+已测试)。

  1. 安装rust,可以使用官方的rustup安装程序或您可能使用的任何包管理器。(如果您使用nix,仓库中还有一个shell.nix文件)

  2. 在您选择的终端中运行以下命令

    cargo install falion
    
  3. 确保您的路径中包含.cargo/bin,对于Linux和macOS,您需要在终端RC文件(例如$HOME/.zshrc)中添加以下行

    export PATH=$HOME/.cargo/bin:$PATH # This is for Linux & macOS, look below for Windows.
    

    在Windows上,它应该会自动工作(如果刚刚安装,则需要重启),如果不可以,您可以遵循此指南了解如何将内容添加到路径中。Cargo bin文件夹位于Users\{您的用户}\.cargo\bin

  4. 如果您在Linux & macOS上,可能想要创建一个符号链接或如果您在Windows上,创建一个快捷方式到bin文件以方便访问。

  5. 要更新,请再次运行安装命令,现在您可以遵循使用说明了解更多有关如何使用它的信息。

  6. 此外,您可能还想根据您的平台创建快捷方式并将其放置在开始菜单中。

(返回顶部)


🛠 编译

此程序仅使用跨平台库。以下步骤要求您已安装rust,请检查他们的官方安装页面或使用您可能想要的任何包管理器。(如果您使用nix,仓库中还有一个shell.nix文件)

  1. 在您的PC上克隆此仓库,如果您已安装git,可以使用"git clone",如下所示

    git clone https://github.com/Obscurely/falion.git
    

    否则,在仓库页面的右上角,您将看到下载按钮,下载仓库作为zip文件并提取到文件夹中

  2. 在新终端/cmd窗口中打开提取的仓库文件夹,如果您无法在该文件夹上右键单击并打开它,请这样做

    cd the/path
    

    然后您就会到达那里。

  3. 从那里,在终端中运行此编译命令

    cargo build --release
    

    这需要一段时间,因为系统会对可执行文件的速度进行优化,但请耐心等待。

  4. 完成,导航到target/release并从那里获取"fafion"文件。

(返回顶部)

🪧 使用

在提供的视频中展示了您应该了解的有关如何使用falion的所有信息。我也认为UI足够直观,但显然我不能有一个无偏见的眼光或第一次使用体验,所以就这样吧。

基础知识

CLI键绑定

注意:当使用'..'时,它意味着从那个到这个,例如'1..5'意味着从1到5。

主菜单
[1..5] = 访问该资源。
SHIFT + [1..5] = 前往该资源列表中的下一个元素。
ALT + [1..5] = 前往该资源列表中的上一个元素。
n = 移动到每个资源列表中的下一个元素。
SHIFT + n = 移动到每个资源列表中的上一个元素。
CTRL + c = 清除终端并退出。

资源子菜单
n = 移动到内容列表中的下一个元素(如问题 & 答案)。
SHIFT + n = 移动到内容列表中的上一个元素。
q = 返回主菜单。
CTRL + c = 清除终端并退出。

如何使用GUI

  1. 在搜索框中输入您的查询并按Enter键或点击旁边的按钮。
  2. 浏览资源
    1. 资源旁边的箭头用于单独移动一个元素向前或向后。
    2. 底部的箭头用于向前或向后移动一个元素以及所有资源。
  3. 点击包含标题的按钮,可以进入该结果的查看结果视图。
  4. 如果是动态结果,请使用箭头进行移动;如果不是,则只需滚动浏览。
  5. 左上角有一个返回按钮,可以带您返回主菜单。

高级

以下是一些您可能需要了解的命令行选项。

  1. --verbose 使日志详细。
  2. --disable-logs 禁用写入日志文件。
  3. --ui 从命令行运行 UI。
  4. --help 显示帮助信息。
  5. --keybinds 显示 CLI 的快捷键列表。

(返回顶部)

🗾 路线图

路线图(看板)位于项目选项卡顶部或此链接

(返回顶部)

💁 贡献

欢迎贡献!

请阅读 CONTRIBUTING.mdCODE_OF_CONDUCT.md,但概括来说,基本流程是:编辑您想要编辑的文件,进行 pull request,我会查看它,如果更改合理且良好,我将接受它。另外,请友好且尊重。

(返回顶部)

❓常见问题解答

  1. Falion 是否支持从支持的资源(如 StackOverflow 或 GitHub Gists)抓取非英语内容?

    不。一方面,DuckDuckGO 在处理非英语内容时存在困难;另一方面,我已将客户端配置为仅接受英语,因为大部分编程相关内容都是英文的。

  2. 我可以贡献吗?如果是,过程是什么?

    首先,请参考贡献。其次,只要您编写的代码良好、干净、高效、有文档/注释,并且有助于项目,我将非常乐意接受您的 pull request。

  3. Falion 在抓取资源内容时采取了哪些隐私措施?

    它使用 DuckDuckGO 进行搜索结果,尽可能查询最少的 URL,并且仅向客户端提供没有添加指纹的 HTML 页面。唯一需要担心的是您的 IP 地址,大多数人在重启路由器后都可以获得一个新的 IP 地址,因此这并没有什么价值。

  4. 在较旧的硬件上运行 Falion 是否比广告中的慢?

    我在我的 6 年老 CPU(ryzen 7 2700)上的 1 核 Windows 虚拟机中运行过它,禁用了涡轮加速,2Gb 的内存,性能似乎差不多(最多慢半秒)。只要您的总网络延迟低,速度在 100Mbits/s 以上,它将基本符合广告中的描述。无论如何,它将比使用浏览器快。

  5. 我如何报告错误或请求功能?

    只需在这里

  6. Falion crate 能为我项目做什么?

    用于从编程资源或 DuckDuckGO 获取结果的所有方法都公开了。所以如果您想以高效的方式从这些资源中获取搜索结果,这个 crate 就适合您。

(返回顶部)

📟 Semver

falion 遵循 Semantic Versioning 2.0

(返回顶部)

🔰 安全性

如果您发现任何问题,请仔细阅读 SECURITY.md 并严格遵守其中所述的所有内容。

(返回顶部)

🪪 许可证

该软件遵循 MIT 许可协议,请遵守许可条件并享受乐趣 :)。

(返回顶部)

📧 联系方式

您可以在问题标签页中发布问题,或者如果您有更多要说的,可以联系我:[email protected]

(返回顶部)

📄 模板

此存储库基于这个模板 Obscurely/RustTemplate

🦾 致谢

(返回顶部)

ko-fi

依赖项

~22–38MB
~634K SLoC