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.2.0b0.tar.gz (95.0 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.2.0b0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file fzx2-1.2.0b0.tar.gz.

File metadata

  • Download URL: fzx2-1.2.0b0.tar.gz
  • Upload date:
  • Size: 95.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for fzx2-1.2.0b0.tar.gz
Algorithm Hash digest
SHA256 f4ce511e8397e0937e75472c283e947b877dc203aba6eee92b39208ec4569164
MD5 bb69cc580c33bd991b5ed9ef1e875e2f
BLAKE2b-256 4ed6b4c8ee210f7516487dcc6e90b00d904771b45e771d1558fec959557e8a41

See more details on using hashes here.

File details

Details for the file fzx2-1.2.0b0-py3-none-any.whl.

File metadata

  • Download URL: fzx2-1.2.0b0-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.10.11

File hashes

Hashes for fzx2-1.2.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 366196079ebd4326648afc297459f659a6041657dbef74d769cee05f3dcf1408
MD5 2b6ea9dd9b7dd2d0fd922df6a2adda57
BLAKE2b-256 306a71c0c50f1588750d17532139317630ab0890c90e30ccff8de9229becf1c7

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