{"id":19308204,"url":"https://github.com/obscurely/falion","last_synced_at":"2025-04-07T06:12:07.758Z","repository":{"id":168512056,"uuid":"477795046","full_name":"Obscurely/falion","owner":"Obscurely","description":"An open source, programmed in rust, privacy focused tool and crate for interacting with programming resources (like stackoverflow) fast, efficiently and asynchronously/parallel using the CLI or GUI.","archived":false,"fork":false,"pushed_at":"2025-01-10T09:07:10.000Z","size":3112,"stargazers_count":42,"open_issues_count":17,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-31T05:05:42.269Z","etag":null,"topics":["async","cli","fast","parallel","resources","rust","scrape","stackoverflow","ui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Obscurely.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"Obscurely"}},"created_at":"2022-04-04T17:01:46.000Z","updated_at":"2025-03-17T19:45:57.000Z","dependencies_parsed_at":"2025-02-28T04:09:50.805Z","dependency_job_id":"d13630c5-45b4-469a-9703-43a6522baa6b","html_url":"https://github.com/Obscurely/falion","commit_stats":null,"previous_names":["obscurely/falion"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obscurely%2Ffalion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obscurely%2Ffalion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obscurely%2Ffalion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Obscurely%2Ffalion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Obscurely","download_url":"https://codeload.github.com/Obscurely/falion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601448,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","cli","fast","parallel","resources","rust","scrape","stackoverflow","ui"],"created_at":"2024-11-10T00:14:05.931Z","updated_at":"2025-04-07T06:12:07.734Z","avatar_url":"https://github.com/Obscurely.png","language":"Rust","funding_links":["https://ko-fi.com/Obscurely","https://ko-fi.com/K3K3H29LV"],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![Crates.io][crates-shield]][crates-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/images/logo.png\" alt=\"Logo\" width=\"150\" height=\"150\"\u003e\n\n\u003ch1 align=\"center\"\u003e\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    An open source, programmed in rust, privacy focused tool and crate for interacting with programming resources (like stackoverflow) fast, efficiently and asynchronously/parallel using the CLI or GUI.\n    \u003cp\u003e\n        \u003ca href=\"https://github.com/Obscurely/falion/wiki\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n        \u003cbr /\u003e\n        \u003cbr /\u003e\n        \u003ca href=\"https://github.com/Obscurely/falion#-video-showcase\"\u003eView Demo\u003c/a\u003e\n        ·\n        \u003ca href=\"https://github.com/Obscurely/falion/issues\"\u003eReport Bug\u003c/a\u003e\n        ·\n        \u003ca href=\"https://github.com/Obscurely/falion/issues\"\u003eRequest Feature\u003c/a\u003e\n    \u003c/p\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"# -about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#key-highlights\"\u003eKey Highlights\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#supported-resources\"\u003eSupported Resources\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#-features\"\u003e💡 Features\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#-video-showcase\"\u003e🎥 Video showcase\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#-built-with\"\u003e🍔 Built with\u003c/a\u003e\u003c/li\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003ca href=\"#the-stock-libraries-and-these-awesome-third-party-ones\"\u003eThe stock libraries and these awesome third-party party ones\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#-getting-started\"\u003e🏁 Getting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#-running-the-program\"\u003e🏃 Running the Program\u003c/a\u003e\u003c/li\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003ca href=\"#-windows\"\u003e🪟 Windows\u003c/a\u003e\u003c/li\u003e\n          \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#portable-exe\"\u003ePortable EXE\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#installer\"\u003eInstaller\u003c/a\u003e\u003c/li\u003e\n          \u003c/ul\u003e\n          \u003cli\u003e\u003ca href=\"#-linux\"\u003e🐧 Linux\u003c/a\u003e\u003c/li\u003e\n          \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#portable-bin\"\u003ePortable Bin\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#appimage\"\u003eAppImage\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#aur\"\u003eAUR\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#nix-file\"\u003eNix File\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#deb-file\"\u003eDeb File\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#arch-pkg-file\"\u003eArch Pkg File\u003c/a\u003e\u003c/li\u003e\n          \u003c/ul\u003e\n          \u003cli\u003e\u003ca href=\"#-macos\"\u003e🍎 MacOS\u003c/a\u003e\u003c/li\u003e\n          \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#portable-binary\"\u003ePortable Bin\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#app-folder\"\u003eApp Folder\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#dmg-installer\"\u003eDMG Installer\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#homebrew\"\u003eHomebrew\u003c/a\u003e\u003c/li\u003e\n          \u003c/ul\u003e\n          \u003cli\u003e\u003ca href=\"#-all-platforms\"\u003e🚉 All Platforms\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cli\u003e\u003ca href=\"#-compilation\"\u003e🛠 Compilation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#-usage\"\u003e🪧 Usage\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#basics\"\u003eBasics\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#advanced\"\u003eAdvanced\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-road-map\"\u003e🗾 Road Map\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-contributing\"\u003e💁 Contributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#faq\"\u003e❓ FAQ\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-semver\"\u003e📟 Semver\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-security\"\u003e🔰 Security\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-license\"\u003e🪪 License\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-contact\"\u003e📧 Contact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-template\"\u003e📄 Template\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-acknowledgments\"\u003e🦾 Acknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## 🪽 About The Project\n\n**Falion** is creative open-source tool created in **Rust** with the aim of\nimproving programming **resource interaction**. It prioritizes **privacy**,\n**speed**, and **efficiency**, targeting sources like **StackOverflow**,\n**GitHub Gists**, and more.\n\nThe project aims to solve the challenges of accessing information **quickly**\nand **privately** in the programming world, using **DuckDuckGo** for **secure**,\n**private** search results. **HTTPS-only** connections \u0026 **no JavaScript**,\n**plain HTML**.\n\n**Falion** is **lightning-fast** and **efficient**, with **asynchronous** result\nretrieval and **parallel** scraping. It takes **only about 1-1.5 seconds** to\nobtain five results from each resource. **Meaning, by the time you see the\nresults everything is already loaded and ready to be accessed**.\n\nIt offers user-centric interfaces, including a **Command Line Interface (CLI)**\nwith VIM-like key bindings (where applicable) and a **Graphical User Interface\n(GUI)**.\n\n**Cross-platform** support ensures that it runs on **Linux**, **MacOS**, and\n**Windows**.\n\nIt can be used as a standalone tool or integrated into Rust projects **as a\ncrate**, enhancing development capabilities.\n\n---\n\n**Key Highlights**\n\n**Privacy First:** It utilizes DuckDuckGo for results, stick to HTTPS-only\nconnections, and keep it tracker-free.\n\n**Blazing Speed:** Thanks to asynchronous result retrieval and parallel\nscraping, you get your answers in a snap.\n\n**User-Centric Interfaces:** Choose between a VIM-like (where applicable) CLI or\na lightweight GUI for your preferred experience.\n\n**Cross-Platform:** Works seamlessly on Linux, MacOS, and Windows.\n\n**No Rate Limitations:** Browsing without interruptions under normal use.\n\n**Versatile:** Use it as a stand-alone tool or integrate it as a crate into your\nRust projects.\n\n---\n\n**Supported Resources**\n\nThese are generic resources that work for most popular languages. In the future\nthere will be more added + custom resources support. Also\n[request resources here](https://github.com/Obscurely/falion/discussions/15).\n\n- [StackOverflow](https://stackoverflow.com/) is a programming Q\u0026A website.\n- [StackExchange](https://stackexchange.com/) is a network of community-driven\n  Q\u0026A websites.\n- [GitHub Gists](https://gist.github.com/) are a platform for sharing and\n  collaborating on code snippets.\n- [GeeksForGeeks](https://www.geeksforgeeks.org/) is an online learning platform\n  for computer science and programming.\n- [DuckDuckGo Results](https://duckduckgo.com/) are just your normal results\n  rendered as text, not as nice as the above, as a last resort.\n\nIf you've got any questions please give the [FAQ](#faq) a check.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### 💡 Features\n\n- [x] Interact with programming resources\n  - [x] **StackOverflow** - No need to say anything\n  - [x] **StackExchange**- index of different forums\n  - [x] **Github Gists** - for code snippets and guides\n  - [x] **GeeksForGeeks** - has various good programming resources\n  - [x] **DuckDuckGo** - just so you don't need to leave the program you also\n        have html versions of the basic results\n- [x] **Privacy** focused\n  - [x] DuckDuckGo used for results\n  - [x] HTTPs only requests\n  - [x] Only fetches HTML, no unnecessary tracking\n- [x] Incredibly **fast** and **efficient**\n  - [x] Results are retrieved **asynchronously**\n  - [x] Resources are scraped in **parallel**\n  - [x] Instantly view a page, by the time **results appear the content is\n        already loaded**\n  - [x] **Takes about 1 second to 1 and a half to get the results (\u0026 content). 5\n        results each resource**\n  - [x] Leverages rust's performance\n  - [x] Many **optimizations** done\n  - [x] Ligthweight on resources (GUI and CLI)\n- [x] CLI interface\n  - [x] **Fast** and render optimized interface\n  - [x] **VIM** like key binds (where applicable)\n  - [x] **Simple** and **intuitive**\n- [x] GUI interface\n  - [x] **Ligthweight** interface\n  - [x] **Simple**\n  - [x] **Responsive**\n- [x] Cross-platform\n  - [x] **Linux**\n  - [x] **MacOS**\n  - [x] **Windows**\n- [x] **Doesn't get you rate limited**, _under normal use_\n- [x] Project can also **be used as a crate**\n- [ ] Results are **cached** for up to 7 days\n- [ ] **Web UI**\n- [ ] **Custom resources** support\n- [ ] **Configurable**\n  - [ ] Config file editable from the program\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### 🎥 Video showcase\n\n\u003c!-- Showcase video uploaded to github --\u003e\n\n[Showcase](https://github.com/Obscurely/falion/assets/59087558/53dbb49d-1442-41c8-ad5d-ec0ba000bdb9)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### 🍔 Built with\n\n- [Rust 1.76.0](https://www.rust-lang.org/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n#### The stock libraries and these awesome third-party ones\n\n- [chrono](https://lib.rs/crates/chrono) for the names of the log file\n- [clap](https://lib.rs/crates/clap) for cli arguments\n- [crossterm](https://lib.rs/crates/crossterm) is at at the heart of the cli\n- [dashmap](https://lib.rs/crates/dashmap) is a concurent hashmap\n- [dirs](https://lib.rs/crates/dirs) for getting where to store log files\n- [futures](https://lib.rs/crates/futures) for parallel execution\n- [hashbrown](https://lib.rs/crates/hashbrown) is the std hashmap, but with a\n  much faster hash\n- [html2text](https://lib.rs/crates/html2text) for making html readable as text\n- [rand](https://lib.rs/crates/fastrand) for generating a random user agent\n- [rayon](https://lib.rs/crates/rayon) for parallel iterators\n- [reqwest](https://lib.rs/crates/reqwest) for making web requests\n- [slint](https://lib.rs/crates/slint) for the GUI\n- [slint-build](https://lib.rs/crates/slint-build) for building the gui files\n- [thiserror](https://lib.rs/crates/thiserror) for making error handling better\n- [tokio](https://lib.rs/crates/tokio) is an asynchronous runtime\n- [tracing](https://lib.rs/crates/tracing) for getting logs\n- [tracing-subscriber](https://lib.rs/crates/tracing-subscriber) for parsing and\n  storing the logs\n- [url](https://lib.rs/crates/url) for parsing urls to test if they are valid\n- [urlencoding](https://lib.rs/crates/urlencoding) for encoding search queries\n- [user32-sys](https://lib.rs/crates/user32-sys),\n  [winapi](https://lib.rs/crates/winapi) and\n  [kernel32-sys](https://lib.rs/crates/kernel32-sys) for checking where the\n  program was run from and hiding the terminal window on windows\n- [embed-resource](https://lib.rs/crates/embed-resource) for embeding the icon\n  in the executable on build on windows\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🏁 Getting Started\n\n### 🏃 Running The Program\n\n| Platform                         | Versions        |\n| :------------------------------- | :-------------- |\n| [Windows](#-windows)             | 7 and above     |\n| [Linux](#-linux)                 | Anything really |\n| [MacOS](#-macos)                 | 10.15 and above |\n| [All Platforms](#-all-platforms) | All the above   |\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n### 🪟 Windows\n\n- [Portable EXE](#portable-exe)\n- [Installer](#installer)\n\n#### Portable EXE\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-windows.exe_ file (might have to click show all).\n1. Double click the exe you just downloaded and there you go the program works.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n1. Also you might wanna make a desktop shortcut and one to place in the\n   [start-menu](https://www.windowscentral.com/add-app-shortcuts-start-menu-manually-windows-10)\n\n#### Installer\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-windows-installer.exe_ file (might have to click show\n   all).\n1. Double click the installer and go through it as you would with any other\n   installer.\n1. If you look now in the start menu (or on the desktop if you ticked create\n   desktop shortcut) you are gonna see a shortcut for falion, just run it like\n   any other program.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n### 🐧 Linux\n\n- [Portable Bin](#portable-bin)\n- [AppImage](#appimage)\n- [AUR](#aur)\n- [Nix File](#nix-file)\n- [Deb File](#deb-file)\n\n**⚠️ Dependencies:** openssl, most likely already installed.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n#### Portable Bin\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-linux_ file.\n1. Double click the bin you just downloaded and there you go the program works.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n1. Also you might wanna download _falion-linux.tar.gz_ file instead and extract\n   linux/desktop/falion.desktop to $HOME/.local/share/applications,\n   linux/desktop/icons to $HOME/.local/share/icons in order to have a start-menu\n   shortcut and falion to /usr/bin/.\n\n#### AppImage\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-linux.AppImage_ file.\n1. Double click the AppImage you download and there you go the program just\n   works. You may want to install\n   [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher) if you\n   don't have it already, so when you start the AppImage you'll get a prompt\n   asking if you want to integrate and run it and if you do so it will appear\n   just as if you installed it.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\n#### AUR\n\nThe PKGs are:\n\n- falion-bin (for precompiled, it's the only one available since building in the\n  pkgbuild fails for some reason)\n\na. if you have an AUR manager (like\n[paru](https://github.com/Morganamilo/paru/blob/master/README.md#installation)\nor [yay](https://github.com/Jguer/yay/blob/next/README.md#installation), which\nyou should)\n\n1. Just like with any other AUR pkg choose your prefered type and you can run\n   the following command for example.\n\n   ```shell\n   paru -Sy falion-bin\n   ```\n\n1. Search for falion in your app launcher and launch it.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\nb. Manually cloning and building it from AUR\n\n1. First install the basic build dependencies, if you don't already have them:\n\n   ```shell\n   sudo pacman -Sy gcc base-devel --needed\n   ```\n\n1. Then clone the build script\n\n   ```shell\n   git clone https://aur.archlinux.org/falion-bin.git\n   ```\n\n1. Cd into the new cloned repository and run the following to build the package\n\n   ```shell\n   makepkg\n   ```\n\n1. In order to install the package run the following (where \\* is just an any\n   other characters place holder)\n\n   ```shell\n   sudo pacman -U falion-*.pkg.tar.zst\n   ```\n\n#### Nix File\n\nYou are using NixOS, don't worry I got you bro.\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-linux.nix_ file.\n1. If you use flakes then put it in your pkgs folder, and up-top add your tag\n   (like _my_). If you don't just add the code in your default.nix file and\n   install it this way.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\n#### Deb File\n\nYou should use the app image. This does not provide a desktop file, you'll have\nto run it from the command-line. It's here just as another means if needed. I\nwill try to make a ppa eventually.\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-linux.deb_ file.\n1. Open a terminal in the folder where your download is and run the following\n   command:\n\n   ```shell\n   sudo dpkg -i falion-linux.deb\n   ```\n\n1. Run _falion_ in the terminal and there it is, the app.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n1. Also you might wanna download _falion-linux.tar.gz_ file instead and extract\n   linux/desktop/falion.desktop to $HOME/.local/share/applications and\n   linux/desktop/icons to $HOME/.local/share/icons in order to have a start-menu\n   shortcut.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n### 🍎 macOS\n\n- [Portable binary](#portable-binary)\n- [App Folder](#app-folder)\n- [DMG Installer](#dmg-installer)\n- [Homebrew](#homebrew)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n#### Portable binary\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-macos_ file.\n1. Double click the bin you just downloaded and there you go the program works.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n1. Also you might wanna place it somewhere special and\n   [create a shortuct](https://www.lifewire.com/create-desktop-shortcuts-on-a-mac-5184827)\n\n#### App Folder\n\nDamn simillar to [portable binary](#portable-binary), only real difference is\nthis has an icon.\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-macos-app.tar.gz_ file.\n1. Use your archive manager or run in the terminal the following command:\n\n   ```shell\n   tar -xzf falion-macos-app.tar.gz\n   ```\n\n1. Double clikc the app folder you just downloaded and there you go the program\n   works.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\n#### DMG Installer\n\nWorks just like any other dmg installer you've used.\n\n1. Go to the [Releases Tab](https://github.com/Obscurely/falion/releases) and\n   download the _falion-macos-installer.dmg_ file.\n1. Double click to run the dmg.\n1. Drag the app folder over the _Applications_ folder.\n1. Done, you've just installed the app, should see it in launchpad now.\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\n#### Homebrew\n\nNote this method doesn't come with a desktop entry. You'll have to run the\n_falion_ command or just\n[create a shortcut yourself](https://siytek.com/macos-terminal-command-as-a-shortcut/#2.-Create-a-new-shortcut),\nit's really easy.\n\n1. You will need to have [homebrew](https://brew.sh) installed, if you don't\n   have it installed run the following command:\n\n   ```shell\n   /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n   ```\n\n1. You'll need to add my tap repository, run the following command for that:\n\n   ```shell\n   brew tap Obscurely/tap\n   ```\n\n1. Install the pkg.\n\n   ```shell\n   brew install falion\n   ```\n\n1. Might wanna take a look at the [Usage Tab](#-usage) if you don't understand\n   something about it.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n### 🚉 All Platforms\n\nThis method will work across any Linux distribution, Windows 10/11 and macOS\n(Big Sur+ tested).\n\n1. Install rust, either using the official\n   [rustup installer](https://www.rust-lang.org/tools/install) or any pkg\n   manager you may use. (There is also a shell.nix file in the repository if you\n   use nix)\n1. Run the following command in your terminal of choice:\n\n   ```shell\n   cargo install falion\n   ```\n\n1. Make sure you have .cargo/bin in path, for linux and macOS you would need to\n   add the following line in your terminal RC file (e.g $HOME/.zshrc)\n\n   ```shell\n   export PATH=$HOME/.cargo/bin:$PATH # This is for Linux \u0026 macOS, look below for Windows.\n   ```\n\n   On windows it should work automatically (restart if just installed), if not\n   you can follow this [guide](https://www.computerhope.com/issues/ch000549.htm)\n   for how to add something to path. The cargo bin folder will be\n   Users\\\\{your-user}\\\\.cargo\\\\bin\n\n1. You may want to create a\n   [symlink](https://www.freecodecamp.org/news/symlink-tutorial-in-linux-how-to-create-and-remove-a-symbolic-link/)\n   on Linux \u0026 macOS or\n   [create a shortcut](https://support.microsoft.com/en-us/office/create-a-desktop-shortcut-for-an-office-program-or-file-9a8df64b-cd87-4700-95cc-4bc3e2a962da)\n   if you are on Windows to the bin file for easy access.\n\n1. In order to update run the install command again, and you can now follow\n   [usage](#-usage) for more information on how to use it.\n1. Also you might wanna create a shortcut and place it in the start-menu\n   acording to your platform.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n### 🛠 Compilation\n\nThis program only uses cross platform libraries. The following steps require\nthat you have rust installed, check their official\n[installation page](https://www.rust-lang.org/tools/install) or use any pkg\nmanager you may want. (There is also a shell.nix file in the repository if you\nuse nix).\n\n1. Clone this repository on your PC, you can use \"git clone\", if you have git\n   installed, like this:\n\n   ```shell\n   git clone https://github.com/Obscurely/falion.git\n   ```\n\n   Otherwise in the right up side of the repository page you will see a download\n   button, download the repository as zip and extract it in a folder\n\n1. Open a new terminal/cmd window in the folder you extracted the repository in,\n   if you can't right click on the folder and open it there do:\n\n   ```shell\n   cd the/path\n   ```\n\n   and you will get there.\n\n1. From there run this compile command in the terminal:\n\n   ```shell\n   cargo build --release\n   ```\n\n   It will take a bit depending on your system because of executable speed\n   optimizations, but be patient.\n\n1. Done, navigate to target/release and grab only the \"falion\" file from there.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🪧 Usage\n\n**In the provided [video](#-video-showcase) it's presented everything you should\nknow on how to use falion. I also think the UI is intuitive enough, but I\nobviously can't have an unbiased opinion or a first look experience, so here you\ngo.**\n\n### Basics\n\n#### CLI key binds\n\n**Note: where '..' is used it means from that to that like '1..5' would mean\nfrom 1 to 5.**\n\n**Main menu:**\u003cbr /\u003e **[1..5]** = Access that resource.\u003cbr /\u003e **SHIFT + [1..5]**\n= Go to the next element in the list of that resource.\u003cbr /\u003e **ALT + [1..5]** =\nGo to the previous element in the list of that resource.\u003cbr /\u003e **n** = Move to\nthe next element in the list of every resource.\u003cbr /\u003e **SHIFT + n** = Move back\nto the previous element in the list of every resource.\u003cbr /\u003e **CTRL + c** =\nClear terminal and exit.\u003cbr /\u003e\n\n**Sub menus for the resources:**\u003cbr /\u003e **n** = Move to the next element in the\ncontent list (like questions \u0026 answers).\u003cbr /\u003e **SHIFT + n** = Move back to the\nprevious element in the content list.\u003cbr /\u003e **q** = Go back to the main\nmenu.\u003cbr /\u003e **CTRL + c** = Clear terminal and exit.\u003cbr /\u003e\n\n#### How to use GUI\n\n1. Write your query in the search box and press enter or click the button\n   besides it.\n1. Browse through the resources\n   1. The arrows besides the resources are for moving one element forwards or\n      backwards individually.\n   1. The arrows at the bottom are for moving one elment forwards or backwards\n      all the resources.\n1. Click on a button containing the title to move into the result view for that\n   result.\n1. If it's a dynamic result use the arrows to move, if not just scroll through.\n1. In the upper left corner there is a back button to take you back to the main\n   menu.\n\n### Advanced\n\nThere are few cli options you might wanna know\n\n1. `--verbose` to make logging verbose\n1. `--disable-logs` to disable writting log files\n1. `--ui` to run the ui from the cli\n1. `--help` to display the help message\n1. `--keybinds` to display the keybinds list for the cli\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🗾 Road Map\n\nThe roadmap (kanban board) is located up top in the projects tab or at\n[this link](https://github.com/users/Obscurely/projects/4).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 💁 Contributing\n\n\u003ca href=\"https://github.com/Obscurely/falion/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=Obscurely/falion\" /\u003e\n\u003c/a\u003e\n\nContributions are always welcome!\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) and\n[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md), but to generalise it the basic process\nis: edit a file you want, do a\n[pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request),\nI will look at it and if the change makes sense and is a good one I will accept\nit and that's it. Also be kind and respectful.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## ❓FAQ\n\n1. **Does Falion support scraping of non-English content on supported resources\n   like StackOverflow or GitHub Gists?**\n\n   No. For one DuckDuckGO struggles with anything, but english and second I have\n   configured the client to only accept english because most of the programming\n   related stuff is in english.\n\n1. **Can I contribute and if so, what's the process?**\n\n   First refer to [Contributing](#-contributing). Second as long as you write\n   good, clean, fast, documented/commented code and it helps with the project I\n   will be more than happy to accept your pull request.\n\n1. **What privacy measures does Falion take when scraping content from\n   resources?**\n\n   It uses DuckDuckGO for search results, queries the least number of urls\n   possible and only html pages with no added finger prints to the client. The\n   only thing to worry about is your IP address which most people can get a new\n   one with a router restart so it holds no value.\n\n1. **Is running Falion on older hardware slower than advertised?**\n\n   I have ran it in a 1 core Windows vm on my 6 years old cpu (ryzen 7 2700)\n   with turbo disabled, 2Gb of ram and the performance seemed to be about the\n   same (at most half a sec slower). As long as your total network latency is\n   low and the speed above like 100Mbits/s it's going to be mostly as\n   advertised. Regardless it will be faster than using your browser.\n\n1. **How can I report a bug or request a feature?**\n\n   Just go [here](https://github.com/Obscurely/falion/issues/new/choose).\n\n1. **What can the falion crate do for my project?**\n\n   All the methods used to get results from the programming resources or\n   duckduckgo are exposed. So if you want to get search results from any of\n   those in a highly efficient way this is the crate for you.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 📟 Semver\n\nfalion is following [Semantic Versioning 2.0](https://semver.org/).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🔰 Security\n\nIf you happen to find any issues please carefully read\n[SECURITY.md](SECURITY.md) and strictly follow everything stated.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🪪 License\n\nIs under [MIT](https://mit-license.org/) so stick to the license conditions and\nhave fun :)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 📧 Contact\n\nEither post an issue in the\n[Issues Tab](https://github.com/Obscurely/falion/issues) or contact me at this\nemail address if you have more to say:\n[obscurely.message@protonmail.com](mailto:obscurely.message@protonmail.com)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 📄 Template\n\nThis repository is based on this template\n[Obscurely/RustTemplate](https://github.com/Obscurely/RustTemplate)\n\n## 🦾 Acknowledgments\n\n- [Best README template indeed](https://github.com/othneildrew/Best-README-Template/blob/master/README.md)\n- [This Rust project template](https://github.com/rust-github/template/tree/main/template)\n- [This other Rust project template](https://github.com/vmchale/project-init)\n- [This general GitHub project template](https://github.com/maehr/github-template)\n- [This site full of the best Rust tools](https://blessed.rs/crates)\n- [Shields.io](https://shields.io/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/K3K3H29LV)\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/Obscurely/falion.svg?style=for-the-badge\n[contributors-url]: https://github.com/Obscurely/falion/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/Obscurely/falion.svg?style=for-the-badge\n[forks-url]: https://github.com/Obscurely/falion/network/members\n[stars-shield]: https://img.shields.io/github/stars/Obscurely/falion.svg?style=for-the-badge\n[stars-url]: https://github.com/Obscurely/falion/stargazers\n[issues-shield]: https://img.shields.io/github/issues/Obscurely/falion.svg?style=for-the-badge\n[issues-url]: https://github.com/Obscurely/falion/issues\n[license-shield]: https://img.shields.io/github/license/Obscurely/falion.svg?style=for-the-badge\n[license-url]: https://github.com/Obscurely/falion/blob/master/LICENSE\n[crates-shield]: https://img.shields.io/crates/v/falion.svg?style=for-the-badge\n[crates-url]: https://crates.io/crates/falion\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobscurely%2Ffalion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobscurely%2Ffalion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobscurely%2Ffalion/lists"}