Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Sanka

The Sanka Runtime: the migration lifecycle (create → inspect → plan → apply → verify), planner, execution engine (batching, throttling, retries, checkpoints, resume, identity ledger), local state store, verification framework, and the sanka CLI. The installed distribution remains sanka-migrate; sanka-migrate is retained as a CLI compatibility alias.

The runtime is licensed AGPL-3.0-only; the connector interface and bundled first-party connectors retain Apache-2.0 source licenses inside the same distribution. Commercial licenses are available from Sanka, Inc. for embedding the runtime without AGPL obligations.

Status: alpha. Published releases are available on PyPI. Migration-as-code specs (sanka.runtime.spec, YAML + programmatic, with env-reference resolution and secret-key rejection) and canonical plan hashing (sanka.runtime.hashing) are in place, together with the engine, state store, and CLI lifecycle commands. APIs may still change before 1.0.

Django REST Framework → FastAPI

Run the four-command compatibility migration from a Django repository root:

sanka scan
sanka plan --to fastapi
sanka apply
sanka verify

This recipe is included in source candidate v0.1.0a4; the live PyPI project remains the publication authority. Sanka resolves the live Django URL graph, including DRF router routes and custom actions. Apply creates a separate FastAPI compatibility application in .sanka/output/fastapi; it does not overwrite the Django source. The generated route graph forwards to the current DRF handlers in-process so teams can prove parity first and replace handlers incrementally.

Python quick start

The distribution name and import name are intentionally different:

pip install sanka-migrate
import asyncio

from sanka import Sanka

async def main() -> None:
    with Sanka() as sanka:
        source = sanka.connect("markdown", "./content")
        target = sanka.connect("sqlite", "content.db")
        migration = sanka.migrate(source, target)
        plan = await migration.plan()
        await migration.apply(plan_hash=plan.plan_hash)
        report = await migration.verify()

    assert report.ok


asyncio.run(main())

The same bundled-provider discovery is available from the CLI:

sanka connect hubspot

Advanced integrations can use the typed sanka.runtime modules directly.

Public research and assessment

The CLI also reads Sanka's cited, keyless research API and can submit a free migration assessment:

sanka research eol --after 2027-01 --type shutdown
sanka research tco salesforce --lang en
sanka research compare crm-migration --platforms salesforce,hubspot
sanka assess --source "SAP ECC" --destination "HubSpot"

Research output includes per-claim vendor sources and terminal attribution. Use --json for the unwrapped API data payload. Filtered queries with no rows exit 2; API or transport failures exit 1. The default public API base is https://api.sanka.com/v2/migrate; set SANKA_MIGRATE_API_BASE only when testing an explicitly trusted staging deployment.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sanka_migrate-0.1.0a4.tar.gz (240.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sanka_migrate-0.1.0a4-py3-none-any.whl (204.8 kB view details)

Uploaded Python 3

File details

Details for the file sanka_migrate-0.1.0a4.tar.gz.

File metadata

  • Download URL: sanka_migrate-0.1.0a4.tar.gz
  • Upload date:
  • Size: 240.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sanka_migrate-0.1.0a4.tar.gz
Algorithm Hash digest
SHA256 dca60e8dde929ae3f9420326987c2ad12b56bc9dd9c66028b93b4a4b55a5d752
MD5 5a490df42915d63b34b535e90a9dc48c
BLAKE2b-256 c59830e9c7c2d5cba86f8fa3bab69fc966ced301ad9e8434b7c141865f819f56

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanka_migrate-0.1.0a4.tar.gz:

Publisher: publish.yml on sankaHQ/sanka

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanka_migrate-0.1.0a4-py3-none-any.whl.

File metadata

  • Download URL: sanka_migrate-0.1.0a4-py3-none-any.whl
  • Upload date:
  • Size: 204.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sanka_migrate-0.1.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 047cda780ed3e62497867ddffcd5f4c7dfd2b17e72c0efe3607550845df2e398
MD5 4f363008f15f4488714cfe78c1fded4e
BLAKE2b-256 a8bbf634ce068edeb13eafa0beaacefa30646812541fa12272024ee8c7b0f0e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanka_migrate-0.1.0a4-py3-none-any.whl:

Publisher: publish.yml on sankaHQ/sanka

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0a4 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page