Skip to main content

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.

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 info
  • assayflux engines — show registered engines and detected tools
  • assayflux doctor [--json] — inspect local build prerequisites
  • assayflux new NAME / assayflux create NAME — generate a starter workspace
  • assayflux wrap-web NAME --source DIR [--root DIR] — bundle a static site into an Android WebView project
  • assayflux validate-web [WEBSITE_DIR] — check index.html and referenced local assets
  • assayflux plan [PROJECT_DIR] — print the task plan
  • assayflux test [PROJECT_DIR] — run project tests
  • assayflux build [PROJECT_DIR] [--force] [--android-artifacts apk|aab|both|none] — package source and run requested Android build tasks
  • assayflux 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 build packages 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)

Source distribution for assayflux 0.1.0
File Size Uploaded
assayflux-0.1.0.tar.gz 39.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for assayflux 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page