{"id":28341176,"url":"https://github.com/beinsezii/pixelbuster","last_synced_at":"2025-06-26T16:34:00.002Z","repository":{"id":37682017,"uuid":"499710725","full_name":"Beinsezii/pixelbuster","owner":"Beinsezii","description":"Simple fast image math","archived":false,"fork":false,"pushed_at":"2024-10-02T05:20:44.000Z","size":996,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-27T03:57:15.611Z","etag":null,"topics":["ffi","image-processing","rust-crate"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Beinsezii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-04T03:08:35.000Z","updated_at":"2024-11-17T22:03:23.000Z","dependencies_parsed_at":"2024-07-17T03:29:13.450Z","dependency_job_id":null,"html_url":"https://github.com/Beinsezii/pixelbuster","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Beinsezii/pixelbuster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beinsezii%2Fpixelbuster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beinsezii%2Fpixelbuster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beinsezii%2Fpixelbuster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beinsezii%2Fpixelbuster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Beinsezii","download_url":"https://codeload.github.com/Beinsezii/pixelbuster/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beinsezii%2Fpixelbuster/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260895552,"owners_count":23078852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ffi","image-processing","rust-crate"],"created_at":"2025-05-27T03:57:15.480Z","updated_at":"2025-06-26T16:33:59.990Z","avatar_url":"https://github.com/Beinsezii.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pixelbuster 0.2.3\nA pixel math library because I can\n\n## Features\n  * Tiny core in pure Rust\n    * FFI available\n    * Fast, works directly on a mutable pointer\n  * Simple 100% easy to understand scripting language that definitely will not give you assembly PTSD\n    * Kind of turing complete maybe\n    * a whole 18 variables you can use, currently limited by the technology of our time.\n\n## Implementations\n  * [GIMP plugin here](https://github.com/Beinsezii/bsz-gimp-plugins)\n  * a simple GUI can be built with `--features=gui` or found in the releases\n\n## Goals for 1.0\n  * SIMD\n  * Docs\n  * Non-alpha\n  * should probably have more than 18 vars\n  * the gui looks like it was written by a 14 y/o Minecraft modder\n  \n## Usage\nSee the HELP either in [code](./src/lib.rs#L10) or ui for language reference\n\n### As a library\nAdd this git to `Cargo.toml` and go for it. Basically nothing is documented as most of this is written at around 2 am, but I believe in you nontheless.\n\nThere's currently 3 fns available via FFI:\n\n`void pixelbuster_ffi(char* code, char* channels, float* pixels, pixels_len: unsigned int, width: unsigned int);`\n  * `code:` Null-terminated UTF-8 string with lines of code\n  * `channels:` Null-terminated UTF-8 string with pixel format as letters. Ex: \"rgba\"\n  * `pixels:` Is cast into float* when validated; can point to raw bytes as well\n    * Currently must *always* have a 4th channel for alpha\n  * `pixels_size:` Size of `pixels` in bytes\n  * `width:` Width of image in pixels. Set to 0 if unkown.\n\n`void pixelbuster_ffi_ext(... float e1..float e9);`\n * Same as `pixelbuster_ffi()` with 9 extra floats at the end of the signature to fill out the external variables\n\n`char* pb_help_ffi();`\nSimply returns a null-terminated UTF-8 string with HELP\n\n### GUI/GIMP\n\u003cimg width=300 src=\"./src/bin/gui/screenshot.png\"/\u003e\n\n 1) Type code\n 2) Press \"update\"\n 3) Impress mates\n\n## F.A.Q.\nQuestion|Answer\n---|---\nCouldn't help but notice there's no way to do any complex filters such as a blur. What the hell even is the point of this|Each pixel only has knowledge of itself, as the core operates directly on a provided buffer instead of writing to a 'shadow' buffer then committing changes. Use G'MIC or something idk.\nIt crashed!|Yup.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeinsezii%2Fpixelbuster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeinsezii%2Fpixelbuster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeinsezii%2Fpixelbuster/lists"}