Skip to main content

4 posts tagged with "sdk"

Software Development Kit related topics and usage

View All Tags

Spice v1.10.1 (Dec 15, 2025)

ยท 5 min read
Jack Eadie
Token Plumber at Spice AI

Announcing the release of Spice v1.10.1! ๐Ÿš€

v1.10.1 is a patch release with Cayenne accelerator improvements including configurable compression strategies and improved partition ID handling, isolated refresh runtime for better query API responsiveness, and security hardening. In addition, the GO SDK, gospice v8 has been released.

What's New in v1.10.1โ€‹

Cayenne Accelerator Improvementsโ€‹

Several improvements and bug fixes for the Cayenne data accelerator:

  • Compression Strategies: The new cayenne_compression_strategy parameter enables choosing between zstd for compact storage or btrblocks for encoding-efficient compression.
  • Improved Vortex Defaults: Aligned Cayenne to Vortex footer configuration for better compatibility.
  • Partition ID Handling: Improved partition ID generation to avoid potential locking race conditions.

Example spicepod.yaml configuration:

datasets:
- from: s3://my-bucket/data.parquet
name: my_dataset
acceleration:
enabled: true
engine: cayenne
mode: file
params:
cayenne_compression_strategy: zstd # or btrblocks (default)

For more details, refer to the Cayenne Data Accelerator Documentation.

Isolated Refresh Runtimeโ€‹

Refresh tasks now run on a separate Tokio runtime isolated from the main query API. This prevents long-running or resource-intensive refresh operations from impacting query latency and ensures the /health endpoint remains responsive during heavy refresh workloads.

Security Hardeningโ€‹

Multiple security improvements have been implemented:

  • Recursion Depth Limits: Added limits to DynamoDB and S3 Vectors integrations to prevent stack overflow from deeply nested structures, mitigating potential DoS attacks.
  • Spicepod Summary API: The GET /v1/spicepods endpoint now returns summarized information instead of full spicepod.yaml representations, preventing potential sensitive information leakage.

Additional Improvements & Bug Fixesโ€‹

  • Performance: Fixed double hashing of user supplied cache keys, improving cache lookup efficiency.
  • Reliability: Fixed idle DynamoDB Stream handling for more stable CDC operations.
  • Reliability: Added warnings when multiple partitions are defined for the same table.
  • Performance: Eagerly drop cached records for results larger than max cache size.

Spice Go SDK v8โ€‹

The Spice Go SDK has been upgraded to v8 with a cleaner API, parameterized queries, and health check methods: gospice v8.0.0.

Key Features:

  • Cleaner API: New Sql() and SqlWithParams() methods with more intuitive naming.
  • Parameterized Queries: Safe, SQL-injection-resistant queries with automatic Go-to-Arrow type inference.
  • Typed Parameters: Explicit type control with constructors like Decimal128Param, TimestampParam, and more.
  • Health Check Methods: New IsSpiceHealthy() and IsSpiceReady() methods for instance monitoring.
  • Upgraded Dependencies: Apache Arrow v18 and ADBC Go driver v1.3.0.

Example usage with a local Spice runtime:

import "github.com/spiceai/gospice/v8"

// Initialize client for local runtime
spice := gospice.NewSpiceClient()
defer spice.Close()

if err := spice.Init(
gospice.WithFlightAddress("grpc://localhost:50051"),
); err != nil {
panic(err)
}

// Parameterized query (safe from SQL injection)
reader, err := spice.SqlWithParams(
ctx,
"SELECT * FROM users WHERE id = $1 AND created_at > $2",
userId,
startTime,
)

Upgrade:

go get github.com/spiceai/gospice/[email protected]

For more details, refer to the Go SDK Documentation.

Contributorsโ€‹

Breaking Changesโ€‹

  • GET /v1/spicepods no longer returns the full spicepod.yaml JSON representation. A summary is returned instead. See #8404.

Cookbook Updatesโ€‹

No major cookbook updates.

The Spice Cookbook includes 82+ recipes to help you get started with Spice quickly and easily.

Upgradingโ€‹

To upgrade to v1.10.1, use one of the following methods:

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.10.1 image:

docker pull spiceai/spiceai:1.10.1

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

AWS Marketplace:

๐ŸŽ‰ Spice is now available in the AWS Marketplace!

What's Changedโ€‹

Changelogโ€‹

  • Return summarized spicepods from /v1/spicepods by @phillipleblanc in #8404
  • DynamoDB tests and fixes by @lukekim in #8491
  • Use an isolated Tokio runtime for refresh tasks that is separate from the main query API by @phillipleblanc in #8504
  • fix: Avoid double hashing cache key by @peasee in #8511
  • fix: Remove unused Cayenne parameters by @peasee in #8500
  • feat: Support vortex zstd compressor by @peasee in #8515
  • Fix for idle DynamoDB Stream by @krinart in #8506
  • fix: Improve Cayenne errors, ID selection for table/partition creation by @peasee in #8523
  • Update dependencies by @phillipleblanc in #8513
  • Upgrade to gospice v8 by @lukekim in #8524
  • fix: Add recursion depth limits to prevent DoS via deeply nested data (DynamoDB + S3 Vectors) by @phillipleblanc in #8544
  • fix: Add warning when multiple partitions are defined for the same table by @peasee in #8540
  • fix: Eagerly drop cached records for results larger than max by @peasee in #8516
  • DDB Streams Integration Test + Memory Acceleration + Improved Warning by @krinart in #8520
  • fix(cluster): initialize secrets before object stores in executor by @sgrebnov in #8532
  • Show user-friendly error on empty DDB table by @krinart in #8586
  • Move 'test_projection_pushdown' to runtime-datafusion by @Jeadie in #8490
  • Fix stats for rewritten DistributeFileScanOptimizer plans by @mach-kernel in #8581

Spice v1.9.1 (Nov 24, 2025)

ยท 7 min read
Viktor Yershov
Senior Software Engineer at Spice AI

Announcing the release of Spice v1.9.1!๐Ÿ”ฅ

v1.9.1 introduces Amazon Bedrock Nova 2 Multimodal embeddings support with high-dimensional vectors up to 3,072 dimensions and purpose-optimized embeddings for semantic search and retrieval operations, DynamoDB timestamp filter pushdown for more efficient append-mode acceleration with configurable time formatting, HTTP Data Connector health probe configuration for improved endpoint validation reliability, and Spice .NET SDK v0.2 with expanded .NET version support and updated gRPC libraries. This release focuses on bug fixes, stability, and performance improvements.

Amazon Bedrock Nova 2 Multimodal embeddingsโ€‹

Spice now supports the Amazon Nova 2 Multimodal embeddings models via the Bedrock models provider, enabling high-quality text embeddings for semantic search and vector similarity operations. The Nova embeddings model offers configurable dimensions and advanced features like truncation modes and embedding purpose optimization.

Key Features:

  • High-Dimensional Embeddings: Support for up to 3,072 dimensions for rich semantic representations
  • Configurable Truncation: Control how input text is truncated when exceeding token limits (START, END, or NONE)
  • Purpose Optimization: Optimize embeddings for specific use cases (GENERIC_INDEX, GENERIC_RETRIEVAL, or CLASSIFICATION)
  • Multimodal Model: Leverages Amazon's Nova 2 multimodal architecture for consistent embeddings across different content types

Example spicepod.yml configuration:

embeddings:
- from: bedrock:amazon.nova-2-multimodal-embeddings-v1:0
name: nova_embeddings
params:
dimensions: '3072' # Required: Output dimensions
truncation_mode: START # Optional: START, END, or NONE (default: NONE)
embedding_purpose: GENERIC_RETRIEVAL # Optional. GENERIC_INDEX is default

For more details on the embedding parameters and configuration options, refer to the Amazon Nova Embeddings Documentation and the Spice Embeddings Documentation.

DynamoDB Timestamp Filter Pushdownโ€‹

The DynamoDB Data Connector now supports timestamp filter pushdown, enabling more efficient append-mode acceleration refreshes by pushing timestamp filters directly to DynamoDB queries. Since DynamoDB stores timestamps as strings rather than native datetime types, this feature includes configurable timestamp formatting to ensure correct parsing and filtering.

Key Features:

  • Filters on timestamp columns are now pushed down to DynamoDB, reducing data transfer and improving query performance
  • Support for Go-style datetime formatting patterns to handle various timestamp string formats
  • Uses ISO 8601 format by default when no custom format is specified

Example spicepod.yml configuration:

datasets:
- from: dynamodb:sales
name: sales
time_column: created_at
time_format: timestamptz
params:
time_format: 2006-01-02T15:04:05.000Z07:00
acceleration:
enabled: true
engine: duckdb
refresh_mode: append

For more details, refer to the DynamoDB Data Connector Documentation.

HTTP Data Connector Health Probe Configurationโ€‹

The HTTP Data Connector now supports configurable health probe paths for endpoint validation. Instead of using a random non-existent path, the system can now validate endpoints using a user-specified path, improving flexibility and reliability for health checks.

Example spicepod.yml configuration:

datasets:
- from: https://api.tvmaze.com
name: tvmaze
params:
file_format: json
health_probe: /health-check

For more details, refer to the HTTP Data Connector Documentation.

Spice .NET SDK v0.2โ€‹

The Spice .NET SDK has been upgraded with expanded .NET version support, custom User-Agent configuration, and updated gRPC libraries: spice-dotnet v0.2.0. The SDK is available on NuGet.

Key Features:

  • Expanded .NET Support: Now supports .NET Standard 2.0, .NET Core 8.0, 9.0, and 10.0.
  • Custom User-Agent: Configure custom User-Agent headers for client identification and telemetry.
  • Updated gRPC Libraries: Upgraded gRPC dependencies and netstandard for improved performance and reliability

Upgrade Example:

dotnet add package SpiceAI --version 0.2.0

For more details, refer to the .NET SDK Documentation.

Additional Improvements & Bug Fixesโ€‹

  • Reliability: Fixed view loading to respect topological order, preventing dependency resolution errors.
  • Reliability: Migrated from deprecated trust_dns_resolver to hickory_resolver for improved DNS resolution reliability.
  • Security: Fixed arbitrary file access vulnerability during archive extraction ("Zip Slip") to prevent potential security exploits.
  • Distributed Query: Fixed object store initialization across scheduler/executor gap, improving reliability for distributed query execution.
  • Distributed Query: Optimized query routing by preventing runtime.* schema queries from being sent to the scheduler, improving performance for metadata queries.
  • Performance: Added Blake3 and xxHash support with xxh3_64 as the default caching hashing algorithm for improved cache and query performance.
  • Performance: Optimized default Zstd compression level to 6 for better balance between compression ratio and speed.
  • UX: Improved dataset loading output with clearer progress indicators and status messages.

Contributorsโ€‹

Breaking Changesโ€‹

No breaking changes.

Cookbook Updatesโ€‹

No major cookbook updates.

The Spice Cookbook includes 82 recipes to help you get started with Spice quickly and easily.

Upgradingโ€‹

To upgrade to v1.9.1, use one of the following methods:

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.9.1 image:

docker pull spiceai/spiceai:1.9.1

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

AWS Marketplace:

๐ŸŽ‰ Spice is now available in the AWS Marketplace!

What's Changedโ€‹

Changelogโ€‹

  • fix integration tests: order by the query to make snapshots deterministic by @phillipleblanc in #8198
  • Add health probe override by @lukekim in #8236
  • Use Moka optionally_get_with for SWR single-in-flight semantics by @lukekim in #8231
  • fix: Arbitrary file access during archive extraction ("Zip Slip") by @phillipleblanc in #8242
  • Migrate trust_dns_resolver to hickory_resolver by @phillipleblanc in #8243
  • fix: Deny assert macros in non-test code by @peasee in #8223
  • Distributed query: Object store initialization across scheduler/executor gap, misc bugfixes & improvements by @mach-kernel in #8009
  • Add Blake3, enable xxHash, set xxh3_64 as default, add bench by @lukekim in #8157
  • Make cache zstd default compression level 6 by @lukekim in #8234
  • Use seed for xxh3 by @lukekim in #8232
  • DynamoDB Timestamp Filter Pushdown by @krinart in #8235
  • Add ready_wait for mongo-arrow benchmarks by @krinart in #8246
  • Add support for amazon.nova-2-multimodal-embeddings-v1:0 by @Jeadie in #8225
  • Improve the output of dataset loading by @lukekim in #8256
  • Load views in topological order by @lukekim in #8255
  • Distributed query: Do not send runtime.* schema queries to scheduler by @mach-kernel in #8271
  • Remove input length check for Nova model. by @Jeadie in #8270

Spice v1.0.1 (Jan 27, 2025)

ยท 5 min read
Qianqian Liu
Software Engineer at Spice AI

Spice v1.0.1 focuses on an improved developer experience, with automatic CUDA GPU detection for local models, in addition to bug fixes. Notably, the Iceberg Catalog Connector now supports AWS Glue including Sig v4 authentication.

Highlights in v1.0.1โ€‹

  • AWS Glue Support for Iceberg Catalog Connector: The Iceberg Catalog Connector now supports AWS Glue. Example spicepod.yaml configuration:
- from: iceberg:https://glue.ap-northeast-2.amazonaws.com/iceberg/v1/catalogs/123456789012/namespaces
name: glue
  • spice upgrade CLI Command: The spice upgrade CLI command detects more edge cases for a smoother upgrade experience.

  • GPU Acceleration Detection: The Spice CLI now automatically detects and enables CUDA (NVIDIA GPUs) GPU acceleration when supported in addition to Metal (M-Series on macOS).

  • Python SDK: The Python SDK (spicepy) has updated to v3.0.0, aligning the SDK with the Runtime

Breaking changesโ€‹

No breaking changes.

Dependenciesโ€‹

No major dependency changes.

Cookbookโ€‹

Upgradingโ€‹

To upgrade to v1.0.1, use one of the following methods:

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.0.1 image:

docker pull spiceai/spiceai:1.0.1

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

Contributorsโ€‹

  • @Jeadie
  • @phillipleblanc
  • @ewgenius
  • @peasee
  • @Sevenannn
  • @sgrebnov
  • @lukekim

What's Changedโ€‹

- Update acknowledgements by @github-actions in https://github.com/spiceai/spiceai/pull/4459
- docs: 1.0 release notes by @peasee in https://github.com/spiceai/spiceai/pull/4440
- Create a release-only workflow that uses a previous run's artifacts by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4461
- Add publish-only CUDA workflow by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4462
- Fix the CUDA release workflow by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4463
- docs: Update SECURITY.md for stable by @peasee in https://github.com/spiceai/spiceai/pull/4465
- docs: Update endgame by @peasee in https://github.com/spiceai/spiceai/pull/4460
- docs: Promote HF and File model components by @peasee in https://github.com/spiceai/spiceai/pull/4457
- fix: E2E test release installation by @peasee in https://github.com/spiceai/spiceai/pull/4466
- Fix publish part of CUDA workflow by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4467
- Fix broken docs links in README by @ewgenius in https://github.com/spiceai/spiceai/pull/4468
- Update benchmark snapshots by @github-actions in https://github.com/spiceai/spiceai/pull/4474
- Update openapi.json by @github-actions in https://github.com/spiceai/spiceai/pull/4477
- Add instruction to force-install CPU runtime to v1.0 release notes by @sgrebnov in https://github.com/spiceai/spiceai/pull/4469
- feat: Add WIP testoperator dispatch workflow by @peasee in https://github.com/spiceai/spiceai/pull/4478
- Fix Bug: invalid REPL cursor position on Windows by @sgrebnov in https://github.com/spiceai/spiceai/pull/4480
- feat: Download latest spiced commit for testoperators by @peasee in https://github.com/spiceai/spiceai/pull/4483
- Add compute engine image by @lukekim in https://github.com/spiceai/spiceai/pull/4486
- fix: Testoperator git fetch depth by @peasee in https://github.com/spiceai/spiceai/pull/4484
- feat: New spicepods, testoperator improvements, TPCDS Q1 fix by @peasee in https://github.com/spiceai/spiceai/pull/4475
- Add 87 CUDA compatiblity to build CI by @Jeadie in https://github.com/spiceai/spiceai/pull/4489
- Use OpenAI golang client in `spice chat` by @Jeadie in https://github.com/spiceai/spiceai/pull/4491
- Verify `search` and `chat` on Windows as part of AI installation tests by @sgrebnov in https://github.com/spiceai/spiceai/pull/4492
- feat: Add testoperator dispatch command by @peasee in https://github.com/spiceai/spiceai/pull/4479
- Run CUDA builds on non-GPU instances by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4496
- Use upgraded spice cli when performing runtime upgrade in spice upgrade by @Sevenannn in https://github.com/spiceai/spiceai/pull/4490
- Revert "Use OpenAI golang client in `spice chat` (#4491)" by @Jeadie in https://github.com/spiceai/spiceai/pull/4532
- Make Anthropic rate limit error message friendlier by @sgrebnov in https://github.com/spiceai/spiceai/pull/4501
- Update supported CUDA targets: add 87(cli), remove 75 by @sgrebnov in https://github.com/spiceai/spiceai/pull/4509
- Support AWS Glue for Iceberg catalog connector by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4517
- Package CUDA runtime libraries into artifact for Windows by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4497

**Full Changelog**: https://github.com/spiceai/spiceai/compare/v1.0.0...v1.0.1

Resourcesโ€‹

Communityโ€‹

Spice.ai started with the vision to make AI easy for developers. We are building Spice.ai in the open and with the community. Reach out on Slack or by email to get involved.

Spice v0.12-alpha (April 29, 2024)

ยท 5 min read
Luke Kim
Founder and CEO of Spice AI

The v0.12-alpha release introduces Clickhouse and Apache Spark data connectors, adds support for limiting refresh data periods for temporal datasets, and includes upgraded Spice Client SDKs compatible with Spice OSS.

Highlightsโ€‹

  • Clickhouse data connector: Use Clickhouse as a data source with the clickhouse: scheme.

  • Apache Spark Connect data connector: Use Apache Spark Connect connections as a data source using the spark: scheme.

  • Refresh data window: Limit accelerated dataset data refreshes to the specified window, as a duration from now configuration setting, for faster and more efficient refreshes.

  • ODBC data connector: Use ODBC connections as a data source using the odbc: scheme. The ODBC data connector is currently optional and not included in default builds. It can be conditionally compiled using the odbc cargo feature when building from source.

  • Spice Client SDK Support: The official Spice SDKs have been upgraded with support for Spice OSS.

Breaking Changesโ€‹

  • Refresh interval: The refresh_interval acceleration setting and been changed to refresh_check_interval to make it clearer it is the check versus the data interval.

Contributorsโ€‹

  • @phillipleblanc
  • @Jeadie
  • @ewgenius
  • @sgrebnov
  • @y-f-u
  • @lukekim
  • @digadeesh
  • @gloomweaver
  • @edmondop
  • @mach-kernel

New Contributorsโ€‹

What's Changedโ€‹

Full Changelog: https://github.com/spiceai/spiceai/compare/v0.11.1-alpha...v0.12.0-alpha

Resourcesโ€‹

Communityโ€‹

Spice.ai started with the vision to make AI easy for developers. We are building Spice.ai in the open and with the community. Reach out on Slack or by email to get involved.