AssayFlux
Version: 0.1.0
Authors: Md Safarujjaman and Md Sahanujjaman
Company: AssayFlux Scientific Systems · Country: India · State: West Bengal · Region: Kolkata
Author email: assayflux@gmail.com · Company email: company@assayflux.com
GitHub: AssayFlux
Official websites: assayflux.org · assayflux.com
AssayFlux is a cross-platform developer toolkit for turning project ideas into organized, runnable software workspaces. Its Python-powered CLI generates starter projects, checks language toolchains, plans tasks, runs supported code, validates website assets, packages source, and orchestrates Android APK/AAB builds when the required SDK and build tools are installed. It is designed to bring multiple development workflows under one consistent interface while preserving the role of each language's native runtime, compiler, and build system.
AssayFlux does not translate arbitrary source code between languages. A reported successful build means the requested build command and artifact checks succeeded; it does not replace runtime testing on a device or deployment environment.
Project ownership and official links
- Authors: Md Safarujjaman and Md Sahanujjaman
- Author email: assayflux@gmail.com
- Company: AssayFlux Scientific Systems
- Company email: company@assayflux.com
- Country: India
- State: West Bengal
- Region: Kolkata
- GitHub: AssayFlux — https://github.com/AssayFlux
- Official websites: https://www.assayflux.org and https://www.assayflux.com
These details are included in package metadata and documentation where the packaging standards support them. PyPI does not provide dedicated author country, state, or region fields, so the location is documented here rather than represented as a verified package-index attribute.
Install
python -m pip install --upgrade assayflux
assayflux --version
assayflux doctor
For local development:
python -m pip install -e '.[dev]'
python -m pytest -q
Quick start
Create a starter website:
assayflux create MyWebsite --target website
assayflux run --project-dir MyWebsite --target website
Open http://127.0.0.1:8000 in your browser. In another terminal, inspect the plan and test the project:
assayflux plan MyWebsite
assayflux test MyWebsite
assayflux build MyWebsite
Build output is placed in deliverables/MyWebsite/; the editable project remains in MyWebsite/.
Wrap an existing static website into an Android APK project
AssayFlux can create an Android WebView wrapper and bundle local HTML, CSS, JavaScript, images, and other static assets into the Android project:
assayflux wrap-web MyMobileSite --source ./path/to/website --root ./mobile-projects
cd ./mobile-projects/MyMobileSite
assayflux build . --android-artifacts apk
The --source directory must contain index.html; a project containing web/index.html is also accepted. Website files are copied into app/src/main/assets/site/. The generated wrapper uses AndroidX WebKit's WebViewAssetLoader, disables direct file access, and opens external navigation in the device browser.
Scope: This wraps a static frontend. It does not automatically embed a Python/PHP backend, create a database server, add authentication, or integrate payment processing. Backend APIs need a separate deployment or explicit native integration. The generated Gradle project downloads its declared AndroidX WebKit dependency during a build, so the first build generally needs network access.
Generate other project types
assayflux new DataTool --target python
assayflux new MultiTool --target python --target website --target backend
assayflux new NativeDemo --target android
Supported starter targets: website, html, css, backend, cli, python, r, c, cpp, javascript, typescript, java, kotlin, php, bash, go, rust, sql, and android. Engine detection is capability discovery; it does not imply every target is compiled by the generic build command.
Scientific and multi-language starter workflows
AssayFlux 0.1.0 includes R, TypeScript, Go, Rust, and SQLite SQL starter workflows. R runtime execution still requires R and Rscript to be installed. Generate an R analysis workspace with:
assayflux new ResearchAnalysis --target r
assayflux doctor
assayflux run --project-dir ResearchAnalysis --target r
The generated src/analysis.R is a minimal working starter, not a full statistical-analysis framework. R must be installed separately and Rscript must be available on PATH. Package installation and advanced R/Python interoperability are not performed automatically.
Other added targets:
assayflux new TypeScriptDemo --target typescript # requires tsc + Node.js
assayflux new GoDemo --target go # requires Go
assayflux new RustDemo --target rust # requires rustc
assayflux new SQLDemo --target sql # Python standard-library SQLite, in-memory
assayflux run --project-dir SQLDemo --target sql
assayflux validate-web ./web # checks index.html and local referenced assets
validate-web is a lightweight sanity check; it is not a full HTML validator or security audit. TypeScript, Go, Rust, and R targets need their respective toolchains for execution.
Toolchain setup and automatic requirements
AssayFlux's core CLI is written using the Python standard library, so a basic install does not need a separate third-party Python runtime dependency. Install the optional development tools with python -m pip install --upgrade "assayflux[dev]" when you need to run tests or build/publish a release.
System toolchains are different from Python dependencies. Java/JDK, Gradle, Android SDK/build-tools, Node.js, C/C++ compilers, PHP, and similar tools are OS-level programs with different installation methods, licenses, sizes, and permissions. pip install assayflux cannot safely and reliably install all of them on every Windows, macOS, Linux, Termux, and Colab environment. Run assayflux doctor to check what is available. For supported Android build environments, use the included setup guide/script; it installs the documented toolchain for its target environment and may download several gigabytes and request Android SDK license acceptance. Review scripts before running them and do not run them on systems where you lack administrator permission.
Android build requirements
Android builds require a compatible JDK (17 recommended), Gradle compatible with Android Gradle Plugin 8.7.3, Android SDK platform 35 and build-tools 35.0.0, and ANDROID_HOME or ANDROID_SDK_ROOT. See Google Colab Android setup.
assayflux build . --android-artifacts apk # debug APK
assayflux build . --android-artifacts aab # release AAB
assayflux build . --android-artifacts both # both
Release AAB signing is not configured automatically. Configure signing credentials securely before publishing. Test APKs on real devices or emulators.
CLI commands
assayflux --version,assayflux infoassayflux engines— show registered engines and detected toolsassayflux doctor [--json]— inspect local build prerequisitesassayflux new NAME/assayflux create NAME— generate a starter workspaceassayflux wrap-web NAME --source DIR [--root DIR]— bundle a static site into an Android WebView projectassayflux validate-web [WEBSITE_DIR]— checkindex.htmland referenced local assetsassayflux plan [PROJECT_DIR]— print the task planassayflux test [PROJECT_DIR]— run project testsassayflux build [PROJECT_DIR] [--force] [--android-artifacts apk|aab|both|none]— package source and run requested Android build tasksassayflux run --project-dir DIR --target TARGET— run a supported target
--force replaces only the existing delivery folder, not the editable project source. Review the destination before using it.
Delivery report
BUILD_REPORT.json distinguishes built (requested Android artifact built and found), source_packaged (source snapshot packaged without a requested Android build), and partial (requested Android build was blocked or failed). Build stdout/stderr are retained under logs/; inspect them when a build fails.
Python API
from assayflux import Project
project = Project.create("ResearchPortal", root=".", targets=["website", "backend"])
project.generate()
result = project.build()
print(result.report["status"])
Security and limitations
- Build, test, and run commands may execute project-local code. Do not run untrusted projects; AssayFlux is not a sandbox.
- Generated backend code is a minimal starter, not a hardened internet-facing API.
- Website-to-APK wrapping is for static frontends; server-side routes, local database services, login backends, and payments are not automatically ported.
- Generic non-Android
buildpackages source; it does not claim to compile every language target. - APK build success does not prove the app's full runtime behavior. Test the resulting app on a device/emulator.
- Release signing and store publication require separate configuration and credentials.
Build and validate a release
python -m pip install --upgrade build twine
python -m pytest -q
python -m build
python -m twine check dist/*
Review the publishing checklist before releasing. PyPI publishing is a separate authenticated action; building a wheel does not publish it.
Runtime detection and setup (0.1.0)
Use assayflux runtimes to check Python, R/Rscript, Java, Gradle, Android SDK manager, Node.js/npm, TypeScript, PHP, Go, Rust and C/C++ compilers. assayflux setup is detection-only unless you explicitly provide --install --yes; it then uses a supported OS package manager to install a baseline set of tools. Android SDK command-line tools, SDK platform/build-tools and licence acceptance may still require separate setup. See docs/RUNTIME_SETUP.md.
Metadata
Release files for assayflux 0.1.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 | |
|---|---|---|---|
| assayflux-0.1.0.tar.gz | 39.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| assayflux-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.6 kB
Release files / assayflux-0.1.0.tar.gz
| Download URL | assayflux-0.1.0.tar.gz |
|---|---|
| Size | 39.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
140253a9a2a08ed0af1d2fec83029f0acb594b118bfc6961e6eb639a2aa3be81
|
|
BLAKE2b-256 checksum How to use checksums |
3e31200911fe2d61bc162533af9cbd8d1e09e5bc1d81c2200be1240ff74dcfbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / assayflux-0.1.0-py3-none-any.whl
| Download URL | assayflux-0.1.0-py3-none-any.whl |
|---|---|
| Size | 28.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bbcc42cc6738a2f41bad3d96f71a767d7d9dc34250d14c308d97e5be1a664e20
|
|
BLAKE2b-256 checksum How to use checksums |
277427a1f122ade0331b03bdc8cfb9a1d331b4f6400f5664f3737b59f5c927d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|