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.0a6; 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.

Destination date transforms

The hubspot_date_ms mapping transform converts a source date to UTC-midnight epoch milliseconds for HubSpot date properties. It accepts ISO dates and datetimes, Unix timestamps, and Japanese year-month period labels such as 2026年04月期. A year-month period resolves to the first day of that month; invalid months are rejected as mapping-value errors instead of being coerced.

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.0a6.tar.gz (260.2 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.0a6-py3-none-any.whl (220.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sanka_migrate-0.1.0a6.tar.gz
  • Upload date:
  • Size: 260.2 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.0a6.tar.gz
Algorithm Hash digest
SHA256 4a8db124cc71eb3c98d9f153368527bbfcd4ffeae97a5dee71fd5be7cf17e006
MD5 cb6248271d0b12e25972a7a5866f19eb
BLAKE2b-256 94e61a2dfc33f770f79acdc6f62357bca6371da62cee8ad5f7da9f020445624d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: sanka_migrate-0.1.0a6-py3-none-any.whl
  • Upload date:
  • Size: 220.7 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.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 6c5e4c950f0e85540ba9d0414c7663dfd3c955cd336e63208682ffac0e4d230d
MD5 be059dcbf0bdfd40b4aa366c7ac02f5e
BLAKE2b-256 20008f3495c61e93e2e914f7ebea0720bae849dfc422f7a8835243555f165404

See more details on using hashes here.

Provenance

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