quicknode-sdk 0.1.0a30__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/Cargo.lock +29 -23
  2. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/Cargo.toml +1 -1
  3. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/PKG-INFO +12 -15
  4. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/Cargo.toml +1 -1
  5. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/README.md +4 -7
  6. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/pyproject.toml +2 -2
  7. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/python/README.md +11 -14
  8. {quicknode_sdk-0.1.0a30/python/sdk → quicknode_sdk-0.2.0/python/quicknode_sdk}/__init__.py +1 -1
  9. {quicknode_sdk-0.1.0a30/python/sdk → quicknode_sdk-0.2.0/python/quicknode_sdk}/__init__.pyi +3 -3
  10. {quicknode_sdk-0.1.0a30/python/sdk → quicknode_sdk-0.2.0/python/quicknode_sdk}/init_manual_override.pyi +3 -3
  11. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/LICENSE +0 -0
  12. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/LICENSE +0 -0
  13. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/examples/admin.rs +0 -0
  14. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/examples/admin_e2e.rs +0 -0
  15. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/examples/kvstore_e2e.rs +0 -0
  16. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/examples/streams.rs +0 -0
  17. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/examples/streams_e2e.rs +0 -0
  18. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/examples/webhooks_e2e.rs +0 -0
  19. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/billing.rs +0 -0
  20. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/bulk.rs +0 -0
  21. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/chains.rs +0 -0
  22. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/endpoint_metrics.rs +0 -0
  23. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/endpoint_rate_limits.rs +0 -0
  24. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/endpoint_security.rs +0 -0
  25. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/endpoint_urls.rs +0 -0
  26. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/endpoints.rs +0 -0
  27. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/logs.rs +0 -0
  28. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/mod.rs +0 -0
  29. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/tags.rs +0 -0
  30. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/teams.rs +0 -0
  31. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/admin/usage.rs +0 -0
  32. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/config.rs +0 -0
  33. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/errors.rs +0 -0
  34. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/kvstore/mod.rs +0 -0
  35. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/lib.rs +0 -0
  36. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/streams/mod.rs +0 -0
  37. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/streams/stream.rs +0 -0
  38. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/webhooks/mod.rs +0 -0
  39. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/core/src/webhooks/webhook.rs +0 -0
  40. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/python/Cargo.toml +0 -0
  41. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/python/src/errors.rs +0 -0
  42. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/python/src/lib.rs +0 -0
  43. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/python/src/streams_destination.rs +0 -0
  44. {quicknode_sdk-0.1.0a30 → quicknode_sdk-0.2.0}/crates/python/src/webhooks_template.rs +0 -0
  45. {quicknode_sdk-0.1.0a30/python/sdk → quicknode_sdk-0.2.0/python/quicknode_sdk}/_core/__init__.pyi +0 -0
  46. {quicknode_sdk-0.1.0a30/python/sdk → quicknode_sdk-0.2.0/python/quicknode_sdk}/py.typed +0 -0
@@ -107,7 +107,7 @@ dependencies = [
107
107
  "quote",
108
108
  "regex",
109
109
  "rustc-hash 2.1.2",
110
- "shlex",
110
+ "shlex 1.3.0",
111
111
  "syn",
112
112
  ]
113
113
 
@@ -168,14 +168,14 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
168
168
 
169
169
  [[package]]
170
170
  name = "cc"
171
- version = "1.2.62"
171
+ version = "1.2.63"
172
172
  source = "registry+https://github.com/rust-lang/crates.io-index"
173
- checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
173
+ checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f"
174
174
  dependencies = [
175
175
  "find-msvc-tools",
176
176
  "jobserver",
177
177
  "libc",
178
- "shlex",
178
+ "shlex 2.0.1",
179
179
  ]
180
180
 
181
181
  [[package]]
@@ -343,9 +343,9 @@ dependencies = [
343
343
 
344
344
  [[package]]
345
345
  name = "ctor"
346
- version = "1.0.6"
346
+ version = "1.0.7"
347
347
  source = "registry+https://github.com/rust-lang/crates.io-index"
348
- checksum = "6d765eb1c0bda10d31e0ea185f5ee15da532d60b0912d2bd1441783439e749c5"
348
+ checksum = "01334b89b69ff726750c5ce5073fc8bd860e99aa9a8fc5ca11b04730e3aee97a"
349
349
 
350
350
  [[package]]
351
351
  name = "darling"
@@ -757,9 +757,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
757
757
 
758
758
  [[package]]
759
759
  name = "hyper"
760
- version = "1.10.0"
760
+ version = "1.10.1"
761
761
  source = "registry+https://github.com/rust-lang/crates.io-index"
762
- checksum = "eb92f162bf56536459fc83c79b974bb12837acfed43d6bc370a7916d0ae15ecc"
762
+ checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
763
763
  dependencies = [
764
764
  "atomic-waker",
765
765
  "bytes",
@@ -1227,9 +1227,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
1227
1227
 
1228
1228
  [[package]]
1229
1229
  name = "mio"
1230
- version = "1.2.0"
1230
+ version = "1.2.1"
1231
1231
  source = "registry+https://github.com/rust-lang/crates.io-index"
1232
- checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
1232
+ checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
1233
1233
  dependencies = [
1234
1234
  "libc",
1235
1235
  "wasi",
@@ -1700,7 +1700,7 @@ dependencies = [
1700
1700
 
1701
1701
  [[package]]
1702
1702
  name = "quicknode-sdk"
1703
- version = "0.1.0-alpha.30"
1703
+ version = "0.2.0"
1704
1704
  dependencies = [
1705
1705
  "bon",
1706
1706
  "config",
@@ -2177,7 +2177,7 @@ dependencies = [
2177
2177
 
2178
2178
  [[package]]
2179
2179
  name = "sdk-node"
2180
- version = "0.1.0-alpha.30"
2180
+ version = "0.2.0"
2181
2181
  dependencies = [
2182
2182
  "napi",
2183
2183
  "napi-build",
@@ -2189,7 +2189,7 @@ dependencies = [
2189
2189
 
2190
2190
  [[package]]
2191
2191
  name = "sdk-python"
2192
- version = "0.1.0-alpha.30"
2192
+ version = "0.2.0"
2193
2193
  dependencies = [
2194
2194
  "pyo3",
2195
2195
  "pyo3-async-runtimes",
@@ -2200,7 +2200,7 @@ dependencies = [
2200
2200
 
2201
2201
  [[package]]
2202
2202
  name = "sdk-python-stubs"
2203
- version = "0.1.0-alpha.30"
2203
+ version = "0.2.0"
2204
2204
  dependencies = [
2205
2205
  "pyo3-stub-gen",
2206
2206
  "sdk-python",
@@ -2208,7 +2208,7 @@ dependencies = [
2208
2208
 
2209
2209
  [[package]]
2210
2210
  name = "sdk-ruby"
2211
- version = "0.1.0-alpha.30"
2211
+ version = "0.2.0"
2212
2212
  dependencies = [
2213
2213
  "magnus",
2214
2214
  "quicknode-sdk",
@@ -2373,6 +2373,12 @@ version = "1.3.0"
2373
2373
  source = "registry+https://github.com/rust-lang/crates.io-index"
2374
2374
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
2375
2375
 
2376
+ [[package]]
2377
+ name = "shlex"
2378
+ version = "2.0.1"
2379
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2380
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
2381
+
2376
2382
  [[package]]
2377
2383
  name = "simd_cesu8"
2378
2384
  version = "1.1.1"
@@ -2409,9 +2415,9 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
2409
2415
 
2410
2416
  [[package]]
2411
2417
  name = "socket2"
2412
- version = "0.6.3"
2418
+ version = "0.6.4"
2413
2419
  source = "registry+https://github.com/rust-lang/crates.io-index"
2414
- checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
2420
+ checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
2415
2421
  dependencies = [
2416
2422
  "libc",
2417
2423
  "windows-sys 0.61.2",
@@ -2743,9 +2749,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
2743
2749
 
2744
2750
  [[package]]
2745
2751
  name = "typenum"
2746
- version = "1.20.0"
2752
+ version = "1.20.1"
2747
2753
  source = "registry+https://github.com/rust-lang/crates.io-index"
2748
- checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
2754
+ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
2749
2755
 
2750
2756
  [[package]]
2751
2757
  name = "ucd-trie"
@@ -3303,18 +3309,18 @@ dependencies = [
3303
3309
 
3304
3310
  [[package]]
3305
3311
  name = "zerocopy"
3306
- version = "0.8.49"
3312
+ version = "0.8.50"
3307
3313
  source = "registry+https://github.com/rust-lang/crates.io-index"
3308
- checksum = "bce33a6288fa3f072a8c2c7d0f2fdbb90e28298f0135c1f99b96c3db2efcc60b"
3314
+ checksum = "3b065d4f0e55f82fae73202e189638116a87c55ab6b8e6c2721e13dd9d854ad1"
3309
3315
  dependencies = [
3310
3316
  "zerocopy-derive",
3311
3317
  ]
3312
3318
 
3313
3319
  [[package]]
3314
3320
  name = "zerocopy-derive"
3315
- version = "0.8.49"
3321
+ version = "0.8.50"
3316
3322
  source = "registry+https://github.com/rust-lang/crates.io-index"
3317
- checksum = "8fd425244944f4ab65ccff928e7323354c5a018c75838362fdce749dfad2ee1e"
3323
+ checksum = "0b631b19d36a892ab55420c92dbc83ccd79274f25be714855d3074aa71cab639"
3318
3324
  dependencies = [
3319
3325
  "proc-macro2",
3320
3326
  "quote",
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["crates/core", "crates/python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.1.0-alpha.30"
6
+ version = "0.2.0"
7
7
  edition = "2021"
8
8
  license = "MIT"
9
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quicknode-sdk
3
- Version: 0.1.0a30
3
+ Version: 0.2.0
4
4
  Classifier: Intended Audience :: Developers
5
5
  Classifier: License :: OSI Approved :: MIT License
6
6
  Classifier: Operating System :: POSIX :: Linux
@@ -28,6 +28,8 @@ Python bindings for the Quicknode SDK.
28
28
 
29
29
  This is one of four language bindings published from the same Rust core. See the [project README](https://github.com/quicknode/sdk/blob/main/README.md) for the polyglot overview, development setup, and release process.
30
30
 
31
+ > **Pre-1.0**: While on `0.x`, releases may contain breaking changes. Check the [release notes](https://github.com/quicknode/sdk/releases) before upgrading.
32
+
31
33
  ## Table of Contents
32
34
 
33
35
  - [Installation](#installation)
@@ -82,7 +84,7 @@ Construct the SDK once, then reach into the four sub-clients (`admin`, `streams`
82
84
  ```python
83
85
  # Python
84
86
  import asyncio
85
- from sdk import QuicknodeSdk
87
+ from quicknode_sdk import QuicknodeSdk
86
88
 
87
89
  async def main():
88
90
  qn = QuicknodeSdk.from_env()
@@ -100,7 +102,7 @@ There are two ways to configure the SDK.
100
102
 
101
103
  ```python
102
104
  # Python
103
- from sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
105
+ from quicknode_sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
104
106
  qn = QuicknodeSdk(SdkFullConfig(api_key="your-key", http=HttpConfig(timeout_secs=30)))
105
107
  ```
106
108
 
@@ -135,7 +137,7 @@ quicknode-sdk-<language>/<sdk-version> (<os>-<arch>; <language>-<runtime-version
135
137
  You can attach arbitrary headers via `HttpConfig.headers`. **These headers OVERRIDE any SDK-managed header with the same name**, including `User-Agent`, `x-api-key`, `Accept`, and `Content-Type`. Use this to inject correlation IDs, proxy auth, or to replace the default `User-Agent`. Header names are matched case-insensitively.
136
138
 
137
139
  ```python
138
- from sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
140
+ from quicknode_sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
139
141
 
140
142
  qn = QuicknodeSdk(
141
143
  SdkFullConfig(
@@ -1086,13 +1088,8 @@ Destinations are expressed via `DestinationAttributes`. Each variant wraps an at
1086
1088
  | `Webhook` | `WebhookAttributes` | `url`, `max_retry`, `retry_interval_sec`, `post_timeout_sec`, `compression`, `security_token?` |
1087
1089
  | `S3` | `S3Attributes` | `endpoint`, `access_key`, `secret_key`, `bucket`, `object_prefix`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1088
1090
  | `Azure` | `AzureAttributes` | `storage_account`, `sas_token`, `container`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `blob_prefix?` |
1089
- | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `schema`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1090
- | `Mysql` | `MysqlAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1091
- | `Mongo` | `MongoAttributes` | `connection_string`, `database`, `collection`, `max_retry`, `retry_interval_sec` |
1092
- | `Clickhouse` | `ClickhouseAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1093
- | `Snowflake` | `SnowflakeAttributes` | `account`, `warehouse`, `database`, `schema`, `table`, `username`, `private_key`, `max_retry`, `retry_interval_sec` |
1094
- | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic`, `compression`, `max_retry`, `retry_interval_sec` |
1095
- | `Redis` | `RedisAttributes` | `host`, `port`, `username`, `password`, `key`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1091
+ | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `table_name`, `sslmode`, `max_retry`, `retry_interval_sec` |
1092
+ | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic_name`, `compression_type`, `batch_size`, `linger_ms`, `max_message_bytes`, `timeout_sec`, `max_retry`, `retry_interval_sec`, `username?`, `password?`, `protocol?`, `mechanisms?` |
1096
1093
 
1097
1094
  Wrapper naming per language:
1098
1095
 
@@ -1113,7 +1110,7 @@ Creates a new stream that delivers filtered data to the configured destination.
1113
1110
 
1114
1111
  ```python
1115
1112
  # Python
1116
- from sdk import WebhookAttributes, StreamWebhookDestination
1113
+ from quicknode_sdk import WebhookAttributes, StreamWebhookDestination
1117
1114
 
1118
1115
  stream = await qn.streams.create_stream(
1119
1116
  name="My Stream",
@@ -1336,7 +1333,7 @@ Creates a webhook from a predefined filter template.
1336
1333
 
1337
1334
  ```python
1338
1335
  # Python
1339
- from sdk import EvmWalletFilterArgs, EvmWalletFilterTemplate, WebhookDestinationAttributes
1336
+ from quicknode_sdk import EvmWalletFilterArgs, EvmWalletFilterTemplate, WebhookDestinationAttributes
1340
1337
 
1341
1338
  webhook = await qn.webhooks.create_webhook_from_template(
1342
1339
  name="Wallet Webhook",
@@ -1646,11 +1643,11 @@ subclass to branch on transport vs. API semantics.
1646
1643
  | `ApiError` | non-2xx HTTP response | `status`, `body` |
1647
1644
  | `DecodeError` | 2xx response but JSON parse failed | `body` |
1648
1645
 
1649
- Class names: Importable from `sdk`: `QuicknodeError`, `ConfigError`, `HttpError`, `TimeoutError`, `ConnectionError`, `ApiError`, `DecodeError`.
1646
+ Class names: Importable from `quicknode_sdk`: `QuicknodeError`, `ConfigError`, `HttpError`, `TimeoutError`, `ConnectionError`, `ApiError`, `DecodeError`.
1650
1647
 
1651
1648
  ```python
1652
1649
  # Python
1653
- from sdk import ApiError, TimeoutError
1650
+ from quicknode_sdk import ApiError, TimeoutError
1654
1651
  try:
1655
1652
  await qn.admin.show_endpoint("missing")
1656
1653
  except ApiError as e:
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "quicknode-sdk"
3
- version = "0.1.0-alpha.30"
3
+ version = "0.2.0"
4
4
  edition.workspace = true
5
5
  license.workspace = true
6
6
  description = "Core library for quicknode sdk"
@@ -4,6 +4,8 @@ The core Rust crate for the Quicknode SDK.
4
4
 
5
5
  This is one of four language bindings published from the same Rust core. See the [project README](https://github.com/quicknode/sdk/blob/main/README.md) for the polyglot overview, development setup, and release process.
6
6
 
7
+ > **Pre-1.0**: While on `0.x`, releases may contain breaking changes. Check the [release notes](https://github.com/quicknode/sdk/releases) before upgrading.
8
+
7
9
  ## Table of Contents
8
10
 
9
11
  - [Installation](#installation)
@@ -1113,13 +1115,8 @@ Destinations are expressed via `DestinationAttributes`. Each variant wraps an at
1113
1115
  | `Webhook` | `WebhookAttributes` | `url`, `max_retry`, `retry_interval_sec`, `post_timeout_sec`, `compression`, `security_token?` |
1114
1116
  | `S3` | `S3Attributes` | `endpoint`, `access_key`, `secret_key`, `bucket`, `object_prefix`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1115
1117
  | `Azure` | `AzureAttributes` | `storage_account`, `sas_token`, `container`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `blob_prefix?` |
1116
- | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `schema`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1117
- | `Mysql` | `MysqlAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1118
- | `Mongo` | `MongoAttributes` | `connection_string`, `database`, `collection`, `max_retry`, `retry_interval_sec` |
1119
- | `Clickhouse` | `ClickhouseAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1120
- | `Snowflake` | `SnowflakeAttributes` | `account`, `warehouse`, `database`, `schema`, `table`, `username`, `private_key`, `max_retry`, `retry_interval_sec` |
1121
- | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic`, `compression`, `max_retry`, `retry_interval_sec` |
1122
- | `Redis` | `RedisAttributes` | `host`, `port`, `username`, `password`, `key`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1118
+ | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `table_name`, `sslmode`, `max_retry`, `retry_interval_sec` |
1119
+ | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic_name`, `compression_type`, `batch_size`, `linger_ms`, `max_message_bytes`, `timeout_sec`, `max_retry`, `retry_interval_sec`, `username?`, `password?`, `protocol?`, `mechanisms?` |
1123
1120
 
1124
1121
  Wrapper naming per language:
1125
1122
 
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "quicknode-sdk"
7
- version = "0.1.0a30"
7
+ version = "0.2.0"
8
8
  description = "Quicknode SDK"
9
9
  readme = "python/README.md"
10
10
  requires-python = ">=3.11"
@@ -31,7 +31,7 @@ Issues = "https://github.com/quicknode/sdk/issues"
31
31
 
32
32
  [tool.maturin]
33
33
  manifest-path = "crates/python/Cargo.toml"
34
- module-name = "sdk._core"
34
+ module-name = "quicknode_sdk._core"
35
35
  python-source = "python"
36
36
  features = ["extension-module"]
37
37
  include = [
@@ -4,6 +4,8 @@ Python bindings for the Quicknode SDK.
4
4
 
5
5
  This is one of four language bindings published from the same Rust core. See the [project README](https://github.com/quicknode/sdk/blob/main/README.md) for the polyglot overview, development setup, and release process.
6
6
 
7
+ > **Pre-1.0**: While on `0.x`, releases may contain breaking changes. Check the [release notes](https://github.com/quicknode/sdk/releases) before upgrading.
8
+
7
9
  ## Table of Contents
8
10
 
9
11
  - [Installation](#installation)
@@ -58,7 +60,7 @@ Construct the SDK once, then reach into the four sub-clients (`admin`, `streams`
58
60
  ```python
59
61
  # Python
60
62
  import asyncio
61
- from sdk import QuicknodeSdk
63
+ from quicknode_sdk import QuicknodeSdk
62
64
 
63
65
  async def main():
64
66
  qn = QuicknodeSdk.from_env()
@@ -76,7 +78,7 @@ There are two ways to configure the SDK.
76
78
 
77
79
  ```python
78
80
  # Python
79
- from sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
81
+ from quicknode_sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
80
82
  qn = QuicknodeSdk(SdkFullConfig(api_key="your-key", http=HttpConfig(timeout_secs=30)))
81
83
  ```
82
84
 
@@ -111,7 +113,7 @@ quicknode-sdk-<language>/<sdk-version> (<os>-<arch>; <language>-<runtime-version
111
113
  You can attach arbitrary headers via `HttpConfig.headers`. **These headers OVERRIDE any SDK-managed header with the same name**, including `User-Agent`, `x-api-key`, `Accept`, and `Content-Type`. Use this to inject correlation IDs, proxy auth, or to replace the default `User-Agent`. Header names are matched case-insensitively.
112
114
 
113
115
  ```python
114
- from sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
116
+ from quicknode_sdk import QuicknodeSdk, SdkFullConfig, HttpConfig
115
117
 
116
118
  qn = QuicknodeSdk(
117
119
  SdkFullConfig(
@@ -1062,13 +1064,8 @@ Destinations are expressed via `DestinationAttributes`. Each variant wraps an at
1062
1064
  | `Webhook` | `WebhookAttributes` | `url`, `max_retry`, `retry_interval_sec`, `post_timeout_sec`, `compression`, `security_token?` |
1063
1065
  | `S3` | `S3Attributes` | `endpoint`, `access_key`, `secret_key`, `bucket`, `object_prefix`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1064
1066
  | `Azure` | `AzureAttributes` | `storage_account`, `sas_token`, `container`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `blob_prefix?` |
1065
- | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `schema`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1066
- | `Mysql` | `MysqlAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1067
- | `Mongo` | `MongoAttributes` | `connection_string`, `database`, `collection`, `max_retry`, `retry_interval_sec` |
1068
- | `Clickhouse` | `ClickhouseAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1069
- | `Snowflake` | `SnowflakeAttributes` | `account`, `warehouse`, `database`, `schema`, `table`, `username`, `private_key`, `max_retry`, `retry_interval_sec` |
1070
- | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic`, `compression`, `max_retry`, `retry_interval_sec` |
1071
- | `Redis` | `RedisAttributes` | `host`, `port`, `username`, `password`, `key`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1067
+ | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `table_name`, `sslmode`, `max_retry`, `retry_interval_sec` |
1068
+ | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic_name`, `compression_type`, `batch_size`, `linger_ms`, `max_message_bytes`, `timeout_sec`, `max_retry`, `retry_interval_sec`, `username?`, `password?`, `protocol?`, `mechanisms?` |
1072
1069
 
1073
1070
  Wrapper naming per language:
1074
1071
 
@@ -1089,7 +1086,7 @@ Creates a new stream that delivers filtered data to the configured destination.
1089
1086
 
1090
1087
  ```python
1091
1088
  # Python
1092
- from sdk import WebhookAttributes, StreamWebhookDestination
1089
+ from quicknode_sdk import WebhookAttributes, StreamWebhookDestination
1093
1090
 
1094
1091
  stream = await qn.streams.create_stream(
1095
1092
  name="My Stream",
@@ -1312,7 +1309,7 @@ Creates a webhook from a predefined filter template.
1312
1309
 
1313
1310
  ```python
1314
1311
  # Python
1315
- from sdk import EvmWalletFilterArgs, EvmWalletFilterTemplate, WebhookDestinationAttributes
1312
+ from quicknode_sdk import EvmWalletFilterArgs, EvmWalletFilterTemplate, WebhookDestinationAttributes
1316
1313
 
1317
1314
  webhook = await qn.webhooks.create_webhook_from_template(
1318
1315
  name="Wallet Webhook",
@@ -1622,11 +1619,11 @@ subclass to branch on transport vs. API semantics.
1622
1619
  | `ApiError` | non-2xx HTTP response | `status`, `body` |
1623
1620
  | `DecodeError` | 2xx response but JSON parse failed | `body` |
1624
1621
 
1625
- Class names: Importable from `sdk`: `QuicknodeError`, `ConfigError`, `HttpError`, `TimeoutError`, `ConnectionError`, `ApiError`, `DecodeError`.
1622
+ Class names: Importable from `quicknode_sdk`: `QuicknodeError`, `ConfigError`, `HttpError`, `TimeoutError`, `ConnectionError`, `ApiError`, `DecodeError`.
1626
1623
 
1627
1624
  ```python
1628
1625
  # Python
1629
- from sdk import ApiError, TimeoutError
1626
+ from quicknode_sdk import ApiError, TimeoutError
1630
1627
  try:
1631
1628
  await qn.admin.show_endpoint("missing")
1632
1629
  except ApiError as e:
@@ -1,5 +1,5 @@
1
1
  # Need to manually keep this file updated with the exports
2
- from sdk._core import (
2
+ from quicknode_sdk._core import (
3
3
  QuicknodeSdk,
4
4
  AdminApiClient,
5
5
  StreamsApiClient,
@@ -1,7 +1,7 @@
1
- ## Source of truth for sdk/__init__.pyi
2
- ## python/sdk/__init__.pyi is a build artifact — overwritten by `just python-build`.
1
+ ## Source of truth for quicknode_sdk/__init__.pyi
2
+ ## python/quicknode_sdk/__init__.pyi is a build artifact — overwritten by `just python-build`.
3
3
  ## Edit this file, not __init__.pyi directly.
4
- from sdk._core import (
4
+ from quicknode_sdk._core import (
5
5
  QuicknodeSdk,
6
6
  AdminApiClient,
7
7
  StreamsApiClient,
@@ -1,7 +1,7 @@
1
- ## Source of truth for sdk/__init__.pyi
2
- ## python/sdk/__init__.pyi is a build artifact — overwritten by `just python-build`.
1
+ ## Source of truth for quicknode_sdk/__init__.pyi
2
+ ## python/quicknode_sdk/__init__.pyi is a build artifact — overwritten by `just python-build`.
3
3
  ## Edit this file, not __init__.pyi directly.
4
- from sdk._core import (
4
+ from quicknode_sdk._core import (
5
5
  QuicknodeSdk,
6
6
  AdminApiClient,
7
7
  StreamsApiClient,
File without changes