507ex 2.0 (FZX2)
What is 507ex, and why is there a 2.0?
A while back, I created a executable format called 507ex (507 Being my brand that I like to put things under). I made one mistake on the first time. I used AI in my code. That completely ruined my code. So I decided it was time to rewrite it. Introducing 507ex 2.0 (Abbreviated as FZX2).
What's New?
- AI was not used to write code (yay)
- Enhanced metadata that stores more information
- Auto Dependency Manager. Uses a list embedded in the metadata to ensure the application has the correct dependencies.
- All operations are accessible through one module.
- CAR (Central Application Repository) now supports authentication.
- Executables can now store data persistently.
- Persistent data is checked for integrity.
Perrfered installation
pip install fzx2
and use
fzx2 {option}
or
python3 -m fzx2 {option}
CAR (Central Application Repository)
CAR is a server system that allows seamless execution of applications from the command line. Example:
python3 fzx2.py exec http://127.0.0.1:5000/pull/955d7c5f-5b21-428f-94e4-8e13f1e7223c
Easy as that! All CAR operations are authenticated by a random "secret code" generated by the server.
Endpoint Documentation
POST: /push. Push an executable to the server. Accepts form data in the following form: {'file_id': STR}, and accepts file data in this form: {'file': FILE}. Returns:
{
"status": "success",
"secret_code": "secret_code",
"url": "request.url_root/pull/filename"
}
POST: /pull/<file_id>. Pull an executable from the server. Accepts form data in the following form: {'secret_code': STR} Returns: The file requested or an error message. Files are sent using flask's send_from_directory function.
Running the server
Source Code Method:
python3 fzx2.py start_server
Compiled Executable Method:
./fzx2 start_server
Installation
Optimal Method (pip)
Just run
pip install fzx2
Run it with
fzx2 {option}
or
python3 -m fzx2 {option}
Method 1 (Compiled Executable)
- Download the latest release from the releases page.
- Run the executable. (Recommended to be done in a terminal)
Method 2 (Source Code)
- Clone the Repository using
git clone https://github.com/WyattBrashear/507ex-utils2.git - Run:
pip install -r requirements.txtin order to install the dependencies. - Run the main script using
python3 fzx2.py
CLI Usage
python3 fzx2.py <operation> <path>
All operations are listed below:
- exec: Executes an executable
- start_server: Starts the CAR server
- build: Builds an executable
- unpack: Unpacks an executable
- upload: Uploads an executable
507ex's required files
All directories that are going to be turned into a 507ex requires 2 files:
- runfile (contains the command to run the script)
- dependfile Dependfile is in this format
!{name}|{command}
!PLATFORM {platform}
{dependencies}
Persistent Data
All files stored in persistent data are stored in a directory in the executable's runtime and inside a subdirectory of the main runtime.
Persistent Data Integrity System
Like executables, persistent data is checked for integrity. However, persistent data is subject to a bit more scrutiny. The checks are as follows:
- Checksum calculation of persistent data.
- All persistent data archives are also tied to specific executable's ID
This means, that if executable A is trying to read executable B's persistent data, it will fail.
Demo Video
https://drive.google.com/file/d/1QfDZL2Spc7WKqbfCU_m7xSnRLbJdnfNd/view?usp=sharing
AI Usage
As per usual, I am against using AI in my code. All the code in this repository was human written. The instances of AI usage was autocomplete and AI Assistant when I was stuck, pointing me in the right direction (fzx2.py).
Metadata
Release files for fzx2 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fzx2-1.2.0.tar.gz | 95.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fzx2-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.3 kB
Release files / fzx2-1.2.0.tar.gz
| Download URL | fzx2-1.2.0.tar.gz |
|---|---|
| Size | 95.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0bd552da6aac158735ea6741491aeb99c2f676df11252cdb472e629cfd4c5ba2
|
|
BLAKE2b-256 checksum How to use checksums |
7a99252aecaa58f18fd725b2311300ed281375dc07e7bdef38df98042343e1e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|
Release files / fzx2-1.2.0-py3-none-any.whl
| Download URL | fzx2-1.2.0-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2c08afc1d72fc0dde0f6cc7345b15fee7174cbc49be6d36eeefc503691d4a63
|
|
BLAKE2b-256 checksum How to use checksums |
3f0599943d0efb20384d7947aa65dac27fe15bba9a7062fb892d5d98f46a6623
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|