Skip to main content

507EX executable format version 2.0

Project description

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)

  1. Download the latest release from the releases page.
  2. Run the executable. (Recommended to be done in a terminal)

Method 2 (Source Code)

  1. Clone the Repository using git clone https://github.com/WyattBrashear/507ex-utils2.git
  2. Run: pip install -r requirements.txt in order to install the dependencies.
  3. Run the main script using python3 fzx2.py

CLI Usage

python3 fzx2.py <operation> <path> All operations are listed below:

  1. exec: Executes an executable
  2. start_server: Starts the CAR server
  3. build: Builds an executable
  4. unpack: Unpacks an executable
  5. upload: Uploads an executable

507ex's required files

All directories that are going to be turned into a 507ex requires 2 files:

  1. runfile (contains the command to run the script)
  2. 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:

  1. Checksum calculation of persistent data.
  2. 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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fzx2-1.2a0.tar.gz (94.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fzx2-1.2a0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file fzx2-1.2a0.tar.gz.

File metadata

  • Download URL: fzx2-1.2a0.tar.gz
  • Upload date:
  • Size: 94.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for fzx2-1.2a0.tar.gz
Algorithm Hash digest
SHA256 d1d407baf3911002b08e8bd9c997074bc649d34a04fe989e56ce44d81861b167
MD5 e21f391046fa19faae58a416fe7fda74
BLAKE2b-256 c7be23c76fbc0590413771351dcddf5a26b9f8cb2db14902754d3c5d372e5768

See more details on using hashes here.

File details

Details for the file fzx2-1.2a0-py3-none-any.whl.

File metadata

  • Download URL: fzx2-1.2a0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for fzx2-1.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d14f273f86e3345d743d9cb8e4abac4ac2eaac26fb7e7cc398fac59e5a5f27
MD5 8166dd10e96e2d1fff012eb601f07d26
BLAKE2b-256 f1f5aeb8f10f5b6308eddc43ee106636d80c46dd4624baabea321b0589a7522c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page