Platform & Distribution Guide

Platforms &
Installation

WebWeaveX ships five SDKs. Four are published to public package registries; the Kotlin SDK is distributed as a prebuilt JAR from this repository. Every coordinate on this page was verified against the live registry, and every code sample uses an API that actually exists in the shipped artifact.


Verified Availability Matrix

Checked against each registry's public API. Click a registry to view the live listing.

SDKRegistryCoordinatesLatestInstallStatus
Python PyPI webweavex 3.0.1 pip install webweavex Published
JavaScript / TypeScript npm webweavex 3.0.0 npm install webweavex Published
Dart / Flutter pub.dev webweavex 3.0.0 dart pub add webweavex Published
Java Maven Central io.github.piyush-mishra-00:webweavex 3.0.0 implementation 'io.github.piyush-mishra-00:webweavex:3.0.0' Published
Kotlin GitHub branch webweavex-kotlin-3.0.0.jar 3.0.0 Download JAR → implementation(files(...)) Direct JAR

Status of the JVM SDKs. Java is published to Maven Central as io.github.piyush-mishra-00:webweavex:3.0.0 (jar, sources, javadoc, GPG-signed, released 24 July 2026). The older io.webweavex:webweavex coordinate found in some documentation is wrong — that groupId returns 404. Kotlin is not on Maven Central; no webweavex-kotlin artifact exists under any groupId. Use the prebuilt JAR from the kotlin branch, documented below.


Repository Layout

The main branch holds documentation and this site. Each SDK lives on its own long-lived branch, so a clone of main contains no SDK source. Use git clone -b <branch> to fetch one.

BranchContentsBuild entry point
mainDocs portal, README, this site
pythonwebweavex/ package + core/ enginespyproject.toml
javascriptsrc/ TypeScript sourcespackage.json (tsup)
dartlib/webweavex.dart + lib/src/pubspec.yaml
javajava/src/main/java/io/webweavex/java/pom.xml (published to Central)
kotlinkotlin/src/ + kotlin/dist/*.jarkotlin/build.gradle.kts

Python — PyPI Published

The Python SDK is the reference implementation. Every other SDK is certified byte-for-byte against it. Requires Python 3.10+. Latest published version: 3.0.1.

Terminal
pip install webweavex

# with browser automation (Playwright)
pip install "webweavex[browser]"
python -m playwright install chromium

# everything
pip install "webweavex[full]"

Canonical pipeline

pipeline.py
from webweavex import UniversalInput, run_canonical_pipeline

spec = UniversalInput(
    source="https://example.com",
    source_type="web",
)

result = run_canonical_pipeline(spec)
print(result.pipeline_hash)   # deterministic SHA-256 digest

Extraction helpers

extract.py
from webweavex import (
    extract, extract_async, extract_repo, extract_docs,
    extract_web, extract_repository, extract_multimodal,
)

# Generic entry point
doc = extract("https://example.com")

# Repository cognition — builds a knowledge graph of a codebase
repo = extract_repository("./my-project")

# Multimodal (images, PDFs, documents)
media = extract_multimodal("./report.pdf")

Runtime graph & replay

graph_replay.py
from webweavex import (
    build_runtime_graph, query_runtime_graph,
    compute_global_runtime_fingerprint,
    validate_replay_equivalence,
)

graph = build_runtime_graph([ir_a, ir_b])
nodes = query_runtime_graph(graph, {"type": "element"})

fp = compute_global_runtime_fingerprint(graph)

# Prove two runs are topologically identical
assert validate_replay_equivalence(run_one, run_two)

Kaalka v5 encryption & session persistence

session.py
from webweavex import (
    encrypt_value, decrypt_value,
    encrypt_session_state, decrypt_session_state,
    save_encrypted_session, load_encrypted_session,
    compute_kaalka_hash, fingerprint,
)

blob = encrypt_session_state({"auth_token": "..."})
save_encrypted_session("session.enc", blob)

restored = decrypt_session_state(load_encrypted_session("session.enc"))

Import surface. webweavex/__init__.py re-exports 173 names in __all__ from the internal core.* engine packages. Import from the top-level webweavex package only — core.* is internal and unstable.


JavaScript / TypeScript — npm Published

Dual ESM + CommonJS build with bundled TypeScript declarations. Requires Node.js 18+. Latest published version: 3.0.0.

Terminal
npm install webweavex
# or
pnpm add webweavex
yarn add webweavex

Canonical pipeline

pipeline.ts
import { UniversalInput, runCanonicalPipeline, VERSION } from "webweavex";

const input = new UniversalInput({
  source: "https://example.com",
  sourceType: "web",
});

const result = await runCanonicalPipeline(input);
console.log(VERSION, result.pipelineHash);

Browser & authenticated runtime

browser.ts
import {
  extractWeb, renderPage, captureRuntime,
  createRuntimeSession, persistRuntimeSession, restoreRuntimeSession,
  continueAuthenticatedRuntime, extractWithSession,
  detectSpaFramework, stabilizeSpaDom,
} from "webweavex";

const session = await createRuntimeSession({ source: "https://app.example.com" });
await persistRuntimeSession(session, "session.enc");

// Later — resume without re-authenticating
const resumed = await restoreRuntimeSession("session.enc");
const page    = await extractWithSession("https://app.example.com/dashboard", resumed);

Determinism, replay & reconstruction

replay.ts
import {
  computeGlobalRuntimeFingerprint,
  computeStableDomHash, computeSpaFingerprint,
  validateReplayEquivalence, replayRuntimeState,
  reconstructRuntime, rebuildExecutionGraph,
} from "webweavex";

const domHash = computeStableDomHash(html);
const equal   = validateReplayEquivalence(runA, runB);
const rebuilt = reconstructRuntime(intermediateRepresentation);

Memory fabric

memory.ts
import {
  buildRuntimeMemory, mergeRuntimeMemories, queryRuntimeMemory,
  saveRuntimeMemory, loadRuntimeMemory, stableMemoryHash,
} from "webweavex";

const mem    = buildRuntimeMemory(extractions);
const merged = mergeRuntimeMemories([mem, priorMemory]);
await saveRuntimeMemory(merged, "memory.enc");

Dart / Flutter — pub.dev Published

Pure-Dart implementation including a BeautifulSoup-parity HTML engine, so it runs on Flutter mobile, Dart server, and Dart CLI with no native bridge. Latest published version: 3.0.0.

Terminal
dart pub add webweavex
# Flutter
flutter pub add webweavex

Canonical, Python-aligned API

main.dart
import 'package:webweavex/webweavex.dart';

void main() {
  // Python-aligned canonical entry points
  final fp = computeGlobalRuntimeFingerprint(graph);
  final ok = validateReplayEquivalence(runA, runB);
  final rebuilt = reconstructRuntime(ir);

  print('fingerprint: $fp  replay-equivalent: $ok');
}

HTML extraction with the bundled Soup engine

extract.dart
import 'package:webweavex/webweavex.dart';

void main() {
  final soup = Soup(htmlString);

  final semantic = extractSemanticHtml(htmlString);
  final content  = extractSemanticContent(htmlString);

  // Ingestion auto-detects the input kind
  final kind = detectInputType(source);
  final data = ingestInput(source);
}

Adaptive & interaction engines

adaptive.dart
import 'package:webweavex/webweavex.dart';

// Repair a selector that drifted between releases
final healed = healSelector(brokenSelector, dom);
final anchor = buildSemanticAnchor(element);

// Replay a recorded interaction sequence
replayInteractions(recordedEvents);

// Pagination and modal recovery
final pages = extractPaginatedContent(config);
final modal = recoverModalRuntime(state);

Java — Maven Central Published

Published to Maven Central on 24 July 2026 with jar, sources, javadoc and GPG signatures. The artifact is 374 KB containing 102 classes across 32 packages.

Mind the groupId. The coordinate is io.github.piyush-mishra-00, not io.webweavex. Older documentation advertised io.webweavex:webweavex, which does not exist — that groupId returns 404 on Maven Central. If your build fails to resolve, this is almost certainly why.

1. Declare the dependency

pom.xml
<dependency>
  <groupId>io.github.piyush-mishra-00</groupId>
  <artifactId>webweavex</artifactId>
  <version>3.0.0</version>
</dependency>
build.gradle.kts
dependencies {
    implementation("io.github.piyush-mishra-00:webweavex:3.0.0")
}
build.gradle (Groovy)
implementation 'io.github.piyush-mishra-00:webweavex:3.0.0'

2. Use it — determinism, fingerprint, graph, replay

This is the RealWorldValidation example that ships inside the published artifact (io.webweavex.examples), so it is guaranteed to compile against 3.0.0.

App.java
import io.webweavex.WebWeaveX;
import io.webweavex.crypto.Hashing;
import io.webweavex.determinism.GlobalRuntimeFingerprint;
import io.webweavex.determinism.StableSerialize;
import io.webweavex.graph.RuntimeGraph;
import io.webweavex.replay.ReplayEquivalence;
import java.util.*;

public class App {
    public static void main(String[] args) {
        System.out.println("WebWeaveX Java SDK v" + WebWeaveX.VERSION);

        // 1. Deterministic canonical serialization
        Map<String, Object> data = new LinkedHashMap<>();
        data.put("b", 2);
        data.put("a", 1);
        String canonical = StableSerialize.stableSerialize(data);
        String hash      = Hashing.computeDeterministicHash(data);

        // 2. Global runtime fingerprint
        String fp = GlobalRuntimeFingerprint.compute(new HashMap<>());

        // 3. Graph normalization
        Map<String, Object> graph = RuntimeGraph.normalizeRuntimeGraph(
            Map.of("nodes", List.of(Map.of("id", "1")), "edges", List.of()));

        // 4. Replay equivalence
        Map<String, Object> env = Map.of("browser_ir", Map.of("runtime_identity", "test"));
        Map<String, Object> r   = ReplayEquivalence.validate(env, new LinkedHashMap<>(env));
        System.out.println("equivalent=" + r.get("equivalent"));
    }
}

3. Runtime kernel pipeline

Pipeline.java
import io.webweavex.kernel.RuntimeKernel;
import io.webweavex.kernel.UniversalInput;
import java.util.Map;

UniversalInput input = UniversalInput.of("https://example.com")
        .sourceType("web")
        .tick(0L)
        .build();

RuntimeKernel kernel = RuntimeKernel.getRuntimeKernel("web");
Map<String, Object> result = kernel.runPipeline(input.toDict(), 0L);

Building from source instead

Terminal
git clone -b java https://github.com/ni-sh-a-char/WebWeaveX.git
cd WebWeaveX/java
mvn clean install

The Java tree mirrors the Python engine package-for-package under io.webweavex.*adaptive, application, ast, auth, causality, connectors, determinism, distributed, graph, kernel, memory, replay, repository and more. Parity against the Python golden vectors is enforced in CI by the java-parity and parity-regression workflows on the java branch.


Kotlin — Prebuilt JAR Direct JAR

A compiled, ready-to-use JAR ships in the repository at kotlin/dist/webweavex-kotlin-3.0.0.jar on the kotlin branch. It is 220 KB and contains 76 public classes under io.webweavex.*. No Maven Central coordinate resolves — use the JAR directly.

1. Download the JAR

Terminal
mkdir -p libs
curl -L -o libs/webweavex-kotlin-3.0.0.jar \
  https://github.com/ni-sh-a-char/WebWeaveX/raw/kotlin/kotlin/dist/webweavex-kotlin-3.0.0.jar

2. Add it to your build

build.gradle.kts
dependencies {
    implementation(files("libs/webweavex-kotlin-3.0.0.jar"))
}

3. Or build from source

Terminal
git clone -b kotlin https://github.com/ni-sh-a-char/WebWeaveX.git
cd WebWeaveX/kotlin
./gradlew build

4. Use it

Main.kt
import io.webweavex.runtime.RuntimeKernel
import io.webweavex.runtime.UniversalInput
import io.webweavex.extract.ExtractionPipeline
import io.webweavex.fingerprint.Fingerprint
import io.webweavex.crypto.KaalkaV5

fun main() {
    // Runtime kernel — extract() returns a UniversalOutput
    val kernel = RuntimeKernel()
    val input  = UniversalInput("https://example.com")
    val output = kernel.extract(input)

    println("version:      ${kernel.version}")
    println("capabilities: ${kernel.capabilities}")

    // Deterministic fingerprint, byte-exact with Python/JS/Dart
    println("fingerprint:  ${Fingerprint.compute(input.toMap())}")

    // Direct text extraction
    val result = ExtractionPipeline.extractText(htmlString, "html")
}

Correction to the bundled JAR README. The kotlin/dist/README.md in the repo shows WebWeaveX.extract("https://example.com"). There is no io.webweavex.WebWeaveX class in the shipped JAR — that snippet will not compile. Use io.webweavex.runtime.RuntimeKernel or io.webweavex.extract.ExtractionPipeline as shown above.

Shipped Kotlin packages

PackageKey types
io.webweavex.runtimeRuntimeKernel, UniversalInput, UniversalOutput, RuntimeNode, RuntimeEdge, DeterministicClock, ReplayClock
io.webweavex.extractExtractionPipeline, HtmlExtractor, JsonExtractor, MarkdownExtractor
io.webweavex.determinismCanonicalJson, Normalization, StableSerialize, PyFloat, PyJson
io.webweavex.cryptoKaalkaV5
io.webweavex.replayReplayEngine, ReplayEquivalence, ReplaySnapshot
io.webweavex.memoryMemoryEngine, MemoryStore, MemorySnapshot
io.webweavex.repositoryRepositoryAnalyzer, KnowledgeGraph, QueryEngine, SearchIndex
io.webweavex.graphRuntimeGraph
io.webweavex.workflowWorkflowEngine, WorkflowStep, WorkflowResult
io.webweavex.fetchCrawler, HttpTransport, JavaNetTransport

Cross-Language Parity

The determinism contract is what makes the five SDKs interchangeable: the same input must produce the same canonical bytes, and therefore the same SHA-256 digest, in every language.

LayerGuarantee
Canonical JSONSorted keys, Python-compatible float repr, UTF-8, no insignificant whitespace
NormalizationVolatile keys stripped, stable key ordering, whitespace collapsed
FingerprintSHA-256 over canonical bytes — identical across all five SDKs
Kaalka v5Shared key-derivation and cipher spec, portable encrypted envelopes

Parity is verified by reflective harnesses that replay Python-generated golden vectors through each runtime: JavaVerify on the java branch and KotlinVerify on the kotlin branch each hash their result with StableSerialize and compare against the Python vector digest, reporting MATCH / DIFFER / MISSING per API.


Python Optional Extras

Install only what you need — the base package stays lean.

ExtraCommandPulls in
browserpip install "webweavex[browser]"Playwright ≥1.40
parserspip install "webweavex[parsers]"tree-sitter-languages
ocrpip install "webweavex[ocr]"pytesseract, Pillow
ingestionpip install "webweavex[ingestion]"python-docx, pytesseract, Pillow
llmpip install "webweavex[llm]"groq
fullpip install "webweavex[full]"All of the above
devpip install "webweavex[dev]"pytest, pytest-cov, build

Base dependencies, always installed: requests, httpx, beautifulsoup4, lxml, markdownify, pypdf.


Troubleshooting

SymptomCauseFix
Could not find io.webweavex:webweavex:3.0.0 Wrong groupId — io.webweavex does not exist on Maven Central Use io.github.piyush-mishra-00:webweavex:3.0.0. It is published; no local build or mavenLocal() needed.
Unresolved reference: WebWeaveX (Kotlin) The bundled JAR README documents a class that does not exist Use io.webweavex.runtime.RuntimeKernel or io.webweavex.extract.ExtractionPipeline
Cloning the repo yields no SDK source main is docs-only git clone -b python|javascript|dart|java|kotlin ...
ModuleNotFoundError: playwright Browser extra not installed pip install "webweavex[browser]" && python -m playwright install chromium
Python reports 3.0.1, other SDKs report 3.0.0 Python shipped a patch release; the determinism contract is unchanged No action needed — hashes remain parity-compatible