1. Library first, like Ghost We can easily make it output JSON, pretty print, web API or more if we focus on making it an API first. By API first, I mean Ares should return an object (similar to JSON) and then the output modules (JSON, Pretty printing) takes this object and "morphs" it into what the user wants
  2. Ability to filter & run benchmark tests https://broadleaf-angora-7db.notion.site/Filtration-System-7143b36a42f1466faea3077bfc7e859e

We need to filter because we could have 1000s of decoders or checkers. Filtering will allow us to become faster, improve user experience (no more minecraft enchanting table if it's an xor cipher) and more.

Running benchmarks is important. We need to focus on speed and ease of use, we should graph over time our speed and make sure we are not dipping too low.

  1. Help the user, don't run infinitely and provide help when it's finished! https://broadleaf-angora-7db.notion.site/Timer-Automatically-stop-decryptions-after-60-seconds-a288bdf7d1ed4db389d8648b28618a14

One of my core ideas for Ciphey (which was thrown out) was that if Ciphey fails to find the answer, help the user identify it themselves.

I want it like this:

$ Ares --text "neadndbbarhadnjad"
Failed to find anything after 60 seconds and 1,103,819 decodings.
It is unlikely I can decrypt this text, to run infinitely use `--infinite`.

To help you on your journey, here are all of the encryptions I support:
<link>
It is unlikely that your text is encrypted with one of these.

I want us to help the user as much as possible. Ares didn't crack this, here's what you can do next.

  1. As much as possible, make everything runnable on its own. Decoders should be able to be imported and ran on their own. Same with search algos. Same with checkers. Everything should be able to be made into a module. That way instead of dealing with spaghetti, we can just delete the imports and use a different function call.