{"id":19716433,"url":"https://github.com/meltano/sdk","last_synced_at":"2026-01-07T01:15:36.959Z","repository":{"id":37051671,"uuid":"379008980","full_name":"meltano/sdk","owner":"meltano","description":"Write 70% less code by using the SDK to build custom extractors and loaders that adhere to the Singer standard: https://sdk.meltano.com","archived":false,"fork":false,"pushed_at":"2025-05-12T20:11:48.000Z","size":10983,"stargazers_count":108,"open_issues_count":211,"forks_count":76,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-12T20:44:55.216Z","etag":null,"topics":["python","sdk"],"latest_commit_sha":null,"homepage":"https://sdk.meltano.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meltano.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-21T17:18:51.000Z","updated_at":"2025-05-12T20:11:51.000Z","dependencies_parsed_at":"2024-02-29T03:28:57.217Z","dependency_job_id":"179ef517-2fc1-4f47-81f2-93ba3acb04fb","html_url":"https://github.com/meltano/sdk","commit_stats":{"total_commits":1064,"total_committers":68,"mean_commits":"15.647058823529411","dds":0.7725563909774436,"last_synced_commit":"91cd8ee4b90cb7bacb4f4ba13b062252bad45b70"},"previous_names":[],"tags_count":150,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltano%2Fsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltano%2Fsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltano%2Fsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltano%2Fsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meltano","download_url":"https://codeload.github.com/meltano/sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254249206,"owners_count":22039029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","sdk"],"created_at":"2024-11-11T22:42:08.897Z","updated_at":"2026-01-07T01:15:36.954Z","avatar_url":"https://github.com/meltano.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eMeltano Singer SDK\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\nThe Tap and Target SDKs are the fastest way to build custom data extractors and loaders!\nTaps and targets built on the SDK are automatically compliant with the\n\u003ca href=\"https://hub.meltano.com/singer/spec\"\u003eSinger Spec\u003c/a\u003e, the\nde-facto open source standard for extract and load pipelines.\n\u003c/h3\u003e\n\n______________________________________________________________________\n\n\u003c/br\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Meltano Singer SDK Logo\" src=\"https://user-images.githubusercontent.com/11428666/231584532-ffa694e6-60f9-4fd6-b2ee-5ff3e39d3ad6.svg\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n\u003c/br\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://meltano.com/slack\"\u003e\n    \u003cimg alt=\"Meltano Community Slack\" src=\"https://img.shields.io/badge/Slack-Join%20the%20Community-blue?logo=slack\u0026labelColor=471E80\u0026color=110B1E\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/singer-sdk\"\u003e\n   \u003cimg alt=\"Python Versions\" src=\"https://img.shields.io/pypi/pyversions/singer-sdk?label=Python%20Versions\u0026labelColor=471E80\u0026color=110B1E\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/singer-sdk\"\u003e\n   \u003cimg alt=\"Downloads\" src=\"https://img.shields.io/pypi/dw/singer-sdk?label=Downloads\u0026labelColor=471E80\u0026color=110B1E\"/\u003e\n  \u003c/a\u003e\n  \u003c/br\u003e\n  \u003ca href=\"https://pypi.org/project/singer-sdk\"\u003e\n   \u003cimg alt=\"PyPI Version\" src=\"https://img.shields.io/pypi/v/singer-sdk?label=PyPI%20Version\u0026labelColor=471E80\u0026color=110B1E\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://sdk.meltano.com/en/latest\"\u003e\n   \u003cimg alt=\"Read the Docs (version)\" src=\"https://img.shields.io/readthedocs/meltano-sdk/latest?label=Docs\u0026labelColor=471E80\u0026color=110B1E\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/meltano/sdk\"\u003e\n   \u003cimg alt=\"Codecov\" src=\"https://img.shields.io/codecov/c/github/meltano/sdk?label=Coverage\u0026labelColor=471E80\u0026color=110B1E\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/astral-sh/uv\"\u003e\n   \u003cimg alt=\"uv\" src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json\u0026labelColor=471E80\u0026color=110B1E\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n______________________________________________________________________\n\n## Future-proof extractors and loaders, with less code\n\nOn average, developers tell us that they write about 70% less code by using the SDK, which\nmakes learning the SDK a great investment. Furthermore, as new features and capabilities\nare added to the SDK, your taps and targets can always take advantage of the latest\ncapabilities and bug fixes, simply by updating your SDK dependency to the latest version.\n\n## Meltano\n\n_Not familiar with Meltano?_ [Meltano](https://docs.meltano.com/getting-started/meltano-at-a-glance) is your CLI for ELT+ that:\n\n- **Starts simple**: Meltano is pip-installable and comes in a prepackaged docker container, you can have your first ELT pipeline running within minutes.\n- **Has DataOps out-of-the-box**: Meltano provides tools that make DataOps best practices easy to use in every project.\n- **Integrates with everything**: 300+ natively supported data sources \u0026 targets, as well as additional plugins like great expectations or dbt are natively available.\n- **Is easily customizable**: Meltano isn't just extensible, it's built to be extended! The Singer SDK (for Connectors) \u0026 EDK (for Meltano Components) are easy to use. Meltano Hub helps you find all of the connectors and components created across the data community.\n- **Is a mature system**: Developed since 2018, runs in production at large companies like GitLab, and currently powers over a million pipeline runs monthly.\n- **Has first class ELT tooling built-in**: Extract data from any data source, load into any target, use inline maps to transform on data on the fly, and test the incoming data, all in one package.\n\nIf you want to get started with Meltano, we suggest you:\n\n- head over to the [Installation](https://docs.meltano.com/getting-started/installation)\n- or if you have it installed, go through the [Meltano Tutorial](https://docs.meltano.com/getting-started/part1).\n\n## Documentation\n\n- See our [online documentation](https://sdk.meltano.com) for instructions on how\n  to get started with the SDK.\n\n## Contributing back to the SDK\n\n- For more information on how to contribute, see our [Contributors Guide](https://sdk.meltano.com/en/latest/CONTRIBUTING.html).\n\n## Making a new release of the SDK\n\n1. Trigger a version bump [using the GitHub web UI](https://github.com/edgarrmondragon/sdk/actions/workflows/version_bump.yml) or the cli:\n\n   ```console\n   $ gh workflow run\n   ```\n\n   The `increment: auto` option will figure out the most appropriate bump based on commit history.\n\n1. Follow the checklist in the PR description.\n\n1. Publish a new release [using the GitHub web UI](https://github.com/meltano/sdk/releases/new).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeltano%2Fsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeltano%2Fsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeltano%2Fsdk/lists"}