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.0a5; 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.0a5.tar.gz (259.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.0a5-py3-none-any.whl (220.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sanka_migrate-0.1.0a5.tar.gz
  • Upload date:
  • Size: 259.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.0a5.tar.gz
Algorithm Hash digest
SHA256 b55f41ac6376de31dc901fd822a5b58a8d2e1a2c76eb813430580df7fd7ce8e4
MD5 80485f09cd5fad8849373cb0c8dc9537
BLAKE2b-256 648373ba17a0758a0d78debca1df54061f79c8c7e84ccee5d6a0a5b560349cee

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanka_migrate-0.1.0a5.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.0a5-py3-none-any.whl.

File metadata

  • Download URL: sanka_migrate-0.1.0a5-py3-none-any.whl
  • Upload date:
  • Size: 220.3 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.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 d098731b03ae703ab1584296005d7ad8630f96d182d42f4f642e1ab1df54bef5
MD5 d319bc8cb0f84380f3b4eed76943da3f
BLAKE2b-256 c7ecd0211e0c350857ef7d3947632a331bdd6ed35d0f08fdc851eb3378b42de2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanka_migrate-0.1.0a5-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.0a5 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