Crates.io | falion |
lib.rs | falion |
version | 1.0.3 |
source | src |
created_at | 2022-04-22 05:30:46.581144 |
updated_at | 2024-05-02 10:31:33.529973 |
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. |
homepage | https://github.com/Obscurely/falion |
repository | https://github.com/Obscurely/falion |
max_upload_size | |
id | 572029 |
size | 7,394,349 |
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.
Explore the docs ยป
View Demo
ยท
Report Bug
ยท
Request Feature
Falion is creative open-source tool created in Rust with the aim of improving programming resource interaction. It prioritizes privacy, speed, and efficiency, targeting sources like StackOverflow, GitHub Gists, and more.
The project aims to solve the challenges of accessing information quickly and privately in the programming world, using DuckDuckGo for secure, private search results. HTTPS-only connections & no JavaScript, plain HTML.
Falion is lightning-fast and efficient, with asynchronous result retrieval and parallel scraping. It takes only about 1-1.5 seconds to obtain five results from each resource. Meaning, by the time you see the results everything is already loaded and ready to be accessed.
It offers user-centric interfaces, including a Command Line Interface (CLI) with VIM-like key bindings (where applicable) and a Graphical User Interface (GUI).
Cross-platform support ensures that it runs on Linux, MacOS, and Windows.
It can be used as a standalone tool or integrated into Rust projects as a crate, enhancing development capabilities.
Key Highlights
Privacy First: It utilizes DuckDuckGo for results, stick to HTTPS-only connections, and keep it tracker-free.
Blazing Speed: Thanks to asynchronous result retrieval and parallel scraping, you get your answers in a snap.
User-Centric Interfaces: Choose between a VIM-like (where applicable) CLI or a lightweight GUI for your preferred experience.
Cross-Platform: Works seamlessly on Linux, MacOS, and Windows.
No Rate Limitations: Browsing without interruptions under normal use.
Versatile: Use it as a stand-alone tool or integrate it as a crate into your Rust projects.
Supported Resources
These are generic resources that work for most popular languages. In the future there will be more added + custom resources support. Also request resources here.
If you've got any questions please give the FAQ a check.
Platform | Versions |
---|---|
Windows | 7 and above |
Linux | Anything really |
MacOS | 10.15 and above |
All Platforms | All the above |
โ ๏ธ Dependencies: openssl, most likely already installed.
The PKGs are:
a. if you have an AUR manager (like paru or yay, which you should)
Just like with any other AUR pkg choose your prefered type and you can run the following command for example.
paru -Sy falion-bin
Search for falion in your app launcher and launch it.
Might wanna take a look at the Usage Tab if you don't understand something about it.
b. Manually cloning and building it from AUR
First install the basic build dependencies, if you don't already have them:
sudo pacman -Sy gcc base-devel --needed
Then clone the build script
git clone https://aur.archlinux.org/falion-bin.git
Cd into the new cloned repository and run the following to build the package
makepkg
In order to install the package run the following (where * is just an any other characters place holder)
sudo pacman -U falion-*.pkg.tar.zst
You are using NixOS, don't worry I got you bro.
You should use the app image. This does not provide a desktop file, you'll have to run it from the command-line. It's here just as another means if needed. I will try to make a ppa eventually.
Go to the Releases Tab and download the falion-linux.deb file.
Open a terminal in the folder where your download is and run the following command:
sudo dpkg -i falion-linux.deb
Run falion in the terminal and there it is, the app.
Might wanna take a look at the Usage Tab if you don't understand something about it.
Also you might wanna download falion-linux.tar.gz file instead and extract linux/desktop/falion.desktop to $HOME/.local/share/applications and linux/desktop/icons to $HOME/.local/share/icons in order to have a start-menu shortcut.
Damn simillar to portable binary, only real difference is this has an icon.
Go to the Releases Tab and download the falion-macos-app.tar.gz file.
Use your archive manager or run in the terminal the following command:
tar -xzf falion-macos-app.tar.gz
Double clikc the app folder you just downloaded and there you go the program works.
Might wanna take a look at the Usage Tab if you don't understand something about it.
Works just like any other dmg installer you've used.
Note this method doesn't come with a desktop entry. You'll have to run the falion command or just create a shortcut yourself, it's really easy.
You will need to have homebrew installed, if you don't have it installed run the following command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
You'll need to add my tap repository, run the following command for that:
brew tap Obscurely/tap
Install the pkg.
brew install falion
Might wanna take a look at the Usage Tab if you don't understand something about it.
This method will work across any Linux distribution, Windows 10/11 and macOS (Big Sur+ tested).
Install rust, either using the official rustup installer or any pkg manager you may use. (There is also a shell.nix file in the repository if you use nix)
Run the following command in your terminal of choice:
cargo install falion
Make sure you have .cargo/bin in path, for linux and macOS you would need to add the following line in your terminal RC file (e.g $HOME/.zshrc)
export PATH=$HOME/.cargo/bin:$PATH # This is for Linux & macOS, look below for Windows.
On windows it should work automatically (restart if just installed), if not you can follow this guide for how to add something to path. The cargo bin folder will be Users\{your-user}\.cargo\bin
You may want to create a symlink on Linux & macOS or create a shortcut if you are on Windows to the bin file for easy access.
In order to update run the install command again, and you can now follow usage for more information on how to use it.
Also you might wanna create a shortcut and place it in the start-menu acording to your platform.
This program only uses cross platform libraries. The following steps require that you have rust installed, check their official installation page or use any pkg manager you may want. (There is also a shell.nix file in the repository if you use nix).
Clone this repository on your PC, you can use "git clone", if you have git installed, like this:
git clone https://github.com/Obscurely/falion.git
Otherwise in the right up side of the repository page you will see a download button, download the repository as zip and extract it in a folder
Open a new terminal/cmd window in the folder you extracted the repository in, if you can't right click on the folder and open it there do:
cd the/path
and you will get there.
From there run this compile command in the terminal:
cargo build --release
It will take a bit depending on your system because of executable speed optimizations, but be patient.
Done, navigate to target/release and grab only the "falion" file from there.
In the provided video it's presented everything you should know on how to use falion. I also think the UI is intuitive enough, but I obviously can't have an unbiased opinion or a first look experience, so here you go.
Note: where '..' is used it means from that to that like '1..5' would mean from 1 to 5.
Main menu:
[1..5] = Access that resource.
SHIFT + [1..5]
= Go to the next element in the list of that resource.
ALT + [1..5] =
Go to the previous element in the list of that resource.
n = Move to
the next element in the list of every resource.
SHIFT + n = Move back
to the previous element in the list of every resource.
CTRL + c =
Clear terminal and exit.
Sub menus for the resources:
n = Move to the next element in the
content list (like questions & answers).
SHIFT + n = Move back to the
previous element in the content list.
q = Go back to the main
menu.
CTRL + c = Clear terminal and exit.
There are few cli options you might wanna know
--verbose
to make logging verbose--disable-logs
to disable writting log files--ui
to run the ui from the cli--help
to display the help message--keybinds
to display the keybinds list for the cliThe roadmap (kanban board) is located up top in the projects tab or at this link.
Contributions are always welcome!
Please read CONTRIBUTING.md and CODE_OF_CONDUCT.md, but to generalise it the basic process is: edit a file you want, do a pull request, I will look at it and if the change makes sense and is a good one I will accept it and that's it. Also be kind and respectful.
Does Falion support scraping of non-English content on supported resources like StackOverflow or GitHub Gists?
No. For one DuckDuckGO struggles with anything, but english and second I have configured the client to only accept english because most of the programming related stuff is in english.
Can I contribute and if so, what's the process?
First refer to Contributing. Second as long as you write good, clean, fast, documented/commented code and it helps with the project I will be more than happy to accept your pull request.
What privacy measures does Falion take when scraping content from resources?
It uses DuckDuckGO for search results, queries the least number of urls possible and only html pages with no added finger prints to the client. The only thing to worry about is your IP address which most people can get a new one with a router restart so it holds no value.
Is running Falion on older hardware slower than advertised?
I have ran it in a 1 core Windows vm on my 6 years old cpu (ryzen 7 2700) with turbo disabled, 2Gb of ram and the performance seemed to be about the same (at most half a sec slower). As long as your total network latency is low and the speed above like 100Mbits/s it's going to be mostly as advertised. Regardless it will be faster than using your browser.
How can I report a bug or request a feature?
Just go here.
What can the falion crate do for my project?
All the methods used to get results from the programming resources or duckduckgo are exposed. So if you want to get search results from any of those in a highly efficient way this is the crate for you.
falion is following Semantic Versioning 2.0.
If you happen to find any issues please carefully read SECURITY.md and strictly follow everything stated.
Is under MIT so stick to the license conditions and have fun :)
Either post an issue in the Issues Tab or contact me at this email address if you have more to say: obscurely.message@protonmail.com
This repository is based on this template Obscurely/RustTemplate