diff --git a/CHANGELOG.md b/CHANGELOG.md index ec06a82..afa556f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,17 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [0.2.1](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.2.0...v0.2.1) - 2026-07-21 +## [0.3.0](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.2.1...v0.3.0) - 2026-08-01 + +### Changed + +- rename the package from `arrow-tiberius` to `arrow-sql-server` and the Rust import from `arrow_tiberius` to `arrow_sql_server` +- rename project-owned tracing, environment, SQL object, Docker, test, and benchmark namespaces to Arrow SQL Server forms +- require consumers to update Cargo dependencies and Rust imports directly; no compatibility package, alias, or re-export is provided +- keep existing `arrow-tiberius` releases available on crates.io as historical versions while new releases continue as `arrow-sql-server` + +## [0.2.1](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.2.0...v0.2.1) - 2026-07-21 ### Added -- expose detailed SQL Server bulk finalization tracing ([#183](https://github.com/mag1cfrog/arrow-tiberius/pull/183)) +- expose detailed SQL Server bulk finalization tracing ([#183](https://github.com/mag1cfrog/arrow-sql-server/pull/183)) ### Other -- refresh public docs for 0.2 profiles ([#181](https://github.com/mag1cfrog/arrow-tiberius/pull/181)) +- refresh public docs for 0.2 profiles ([#181](https://github.com/mag1cfrog/arrow-sql-server/pull/181)) -## [0.2.0](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.1.6...v0.2.0) - 2026-07-07 +## [0.2.0](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.1.6...v0.2.0) - 2026-07-07 ### Added @@ -31,13 +40,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - *(ci)* run release-plz with a Rust toolchain compatible with semver checks - *(write)* allow DirectRawBulk to write non-null Arrow timestamps as SQL Server datetime -## [0.1.6](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.1.5...v0.1.6) - 2026-07-04 +## [0.1.6](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.1.5...v0.1.6) - 2026-07-04 ### Added - *(write)* support target-aware timestamp writes for datetime types -## [0.1.5](https://github.com/mag1cfrog/arrow-tiberius/compare/v0.1.4...v0.1.5) - 2026-07-03 +## [0.1.5](https://github.com/mag1cfrog/arrow-sql-server/compare/v0.1.4...v0.1.5) - 2026-07-03 ### Fixed diff --git a/Cargo.toml b/Cargo.toml index 03bed9c..8fd3b7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,13 +13,14 @@ panic = "deny" [package] name = "arrow-sql-server" -version = "0.2.1" +version = "0.3.0" edition = "2024" rust-version = "1.88" license = "Apache-2.0" -repository = "https://github.com/mag1cfrog/arrow-tiberius" -documentation = "https://docs.rs/arrow-tiberius" -description = "Apache Arrow and SQL Server bridge through Tiberius" +repository = "https://github.com/mag1cfrog/arrow-sql-server" +documentation = "https://docs.rs/arrow-sql-server" +homepage = "https://github.com/mag1cfrog/arrow-sql-server" +description = "High-performance Apache Arrow RecordBatch bulk writer for Microsoft SQL Server." readme = "README.md" keywords = ["arrow", "sql-server", "tiberius", "tds"] categories = ["database"] diff --git a/README.md b/README.md index 32f512f..26cc8cb 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# arrow-tiberius +# Arrow SQL Server -[![Crates.io](https://img.shields.io/crates/v/arrow-tiberius.svg)](https://crates.io/crates/arrow-tiberius) -[![Docs.rs](https://docs.rs/arrow-tiberius/badge.svg)](https://docs.rs/arrow-tiberius) +[![Crates.io](https://img.shields.io/crates/v/arrow-sql-server.svg)](https://crates.io/crates/arrow-sql-server) +[![Docs.rs](https://docs.rs/arrow-sql-server/badge.svg)](https://docs.rs/arrow-sql-server) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) -`arrow-tiberius` bridges Apache Arrow and Microsoft SQL Server through the -Tiberius TDS driver. +Arrow SQL Server is a high-performance Apache Arrow `RecordBatch` bulk writer +for Microsoft SQL Server, built on the Tiberius TDS driver. The current API focuses on Arrow-to-SQL Server writes: @@ -21,7 +21,7 @@ SQL Server-to-Arrow reads are reserved for a later release. ```toml [dependencies] -arrow-tiberius = "0.2" +arrow-sql-server = "0.3" ``` ## Quick Start @@ -30,12 +30,12 @@ Plan an Arrow schema and render SQL Server DDL: ```rust use arrow_schema::{DataType, Field, Schema}; -use arrow_tiberius::{ +use arrow_sql_server::{ CompatibilityLevel, MssqlProfile, MssqlVersion, PlanOptions, TableName, create_table_sql_from_mappings, }; -fn main() -> arrow_tiberius::Result<()> { +fn main() -> arrow_sql_server::Result<()> { let schema = Schema::new(vec![ Field::new("id", DataType::Int64, false), Field::new("name", DataType::Utf8, true), @@ -59,7 +59,7 @@ Write a batch to an existing SQL Server table: ```rust use arrow_array::RecordBatch; -use arrow_tiberius::{ +use arrow_sql_server::{ CompatibilityLevel, MssqlProfile, MssqlVersion, PlanOptions, TableName, WriteBackend, WriteOptions, connect_mssql_client_from_ado_string, }; @@ -67,7 +67,7 @@ use arrow_tiberius::{ async fn write_batch( connection_string: &str, batch: &RecordBatch, -) -> arrow_tiberius::Result<()> { +) -> arrow_sql_server::Result<()> { let mut client = connect_mssql_client_from_ado_string(connection_string).await?; let profile = MssqlProfile::new( MssqlVersion::SqlServer2022, @@ -130,7 +130,7 @@ parity tests. ## Observability -`arrow-tiberius` emits structured spans and events through `tracing` for schema +Arrow SQL Server emits structured spans and events through `tracing` for schema planning, writer initialization, batch writes, direct raw backend summaries, and writer finish. It never installs a subscriber. @@ -169,7 +169,7 @@ Choose the `MssqlProfile` that matches the SQL Server version and database compatibility level you plan to write against: ```rust -use arrow_tiberius::{CompatibilityLevel, MssqlProfile, MssqlVersion}; +use arrow_sql_server::{CompatibilityLevel, MssqlProfile, MssqlVersion}; let profile = MssqlProfile::new( MssqlVersion::SqlServer2022, @@ -183,7 +183,7 @@ version/compatibility-level pairs. Legacy convenience constructors such as `MssqlProfile::sql_server_2017_compat_100()` remain available for callers that target those exact environments. -`arrow-tiberius` depends on the published `tiberius-raw-bulk` package as the +Arrow SQL Server depends on the published `tiberius-raw-bulk` package as the crate name `tiberius` and owns that compatibility boundary internally: ```toml @@ -194,7 +194,7 @@ tiberius = { package = "tiberius-raw-bulk", version = "=0.12.3-raw-bulk.15", def ] } ``` -Downstream crates should normally depend only on `arrow-tiberius` and construct +Downstream crates should normally depend only on `arrow-sql-server` and construct SQL Server clients through `connect_mssql_client_from_ado_string` or `ConnectedMssqlClient`. diff --git a/docs/README.md b/docs/README.md index a2a5daf..22f65b5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Documentation This directory contains maintained user and maintainer documentation for -`arrow-tiberius`. +Arrow SQL Server. ## User Guides diff --git a/docs/observability.md b/docs/observability.md index f790cc3..a14b7be 100644 --- a/docs/observability.md +++ b/docs/observability.md @@ -1,10 +1,10 @@ # Observability -This document describes the `arrow-tiberius` tracing contract for applications +This document describes the Arrow SQL Server tracing contract for applications that plan Arrow schemas, write Arrow `RecordBatch` values to SQL Server, or wrap those writes inside a higher-level workflow. -`arrow-tiberius` emits spans and events through the [`tracing`] crate. It does +Arrow SQL Server emits spans and events through the [`tracing`] crate. It does not install a global subscriber, choose an output sink, configure filters, or send telemetry to a vendor. Applications own subscriber setup and decide where events go. @@ -14,7 +14,7 @@ events go. ## Subscriber Ownership Library code only emits telemetry. It is silent unless the application has a -subscriber installed by the time `arrow-tiberius` code runs. +subscriber installed by the time Arrow SQL Server code runs. For a small application or test, one possible setup is: @@ -39,7 +39,7 @@ fn init_tracing_for_example() { Production applications should choose their own subscriber, filter policy, and export pipeline. For example, a service might send `tracing` data through an OpenTelemetry layer to Grafana, Datadog, or another backend. That setup belongs -to the application, not to `arrow-tiberius`. +to the application, not to Arrow SQL Server. ## Target And Levels @@ -59,7 +59,7 @@ tiberius_raw_bulk::protocol That protocol target covers lower-level phases such as connection setup, TLS negotiation, login, bulk-load protocol operations, packet write summaries, server token summaries, and SQL Browser named-instance resolution. It is emitted -by `tiberius-raw-bulk`, not re-wrapped by `arrow-tiberius`. +by `tiberius-raw-bulk`, not re-wrapped by Arrow SQL Server. Recommended filters: @@ -118,7 +118,7 @@ table, or column names. ## Redaction Contract -`arrow-tiberius` tracing does not emit: +Arrow SQL Server tracing does not emit: - SQL Server connection strings. - Passwords, access tokens, or authentication material. @@ -142,7 +142,7 @@ paths, not default end-user output. ## Downstream Workflow Spans Applications should add workflow, source, and output context outside -`arrow-tiberius`. The crate cannot know job ids, source aliases, retry ids, +Arrow SQL Server. The crate cannot know job ids, source aliases, retry ids, or orchestrator output names. Use a parent span around writer calls: @@ -194,13 +194,13 @@ semantics. When a workflow writes multiple outputs, create one parent span per output or per logical workflow step. Keep source-specific context in the application span -or its fields rather than expecting `arrow-tiberius` to infer it. +or its fields rather than expecting Arrow SQL Server to infer it. ## Known Gaps -- `arrow-tiberius` does not install a subscriber or exporter. -- `arrow-tiberius` does not emit row-level telemetry. -- `arrow-tiberius` does not emit raw packet bytes, raw row payload bytes, or +- Arrow SQL Server does not install a subscriber or exporter. +- Arrow SQL Server does not emit row-level telemetry. +- Arrow SQL Server does not emit raw packet bytes, raw row payload bytes, or arbitrary SQL text. - Direct raw writer events report safe row and byte summaries. Lower-level packet summaries are emitted by `tiberius-raw-bulk` protocol tracing. diff --git a/docs/type-mapping.md b/docs/type-mapping.md index a05970f..4203a7d 100644 --- a/docs/type-mapping.md +++ b/docs/type-mapping.md @@ -1,7 +1,7 @@ # Arrow to SQL Server Type Mapping This page documents the current Arrow-to-SQL Server planning surface for -`arrow-tiberius`. +Arrow SQL Server. The direct raw writer is the primary optimized writer. The baseline writer is still supported as a compatibility and reference path. The tables below show diff --git a/src/error.rs b/src/error.rs index 53f4262..bb32b87 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,4 +1,4 @@ -//! Error types for `arrow-tiberius`. +//! Error types for Arrow SQL Server. use std::fmt::{self, Write as _}; @@ -109,7 +109,7 @@ impl<'a> ErrorInfo<'a> { } } -/// Error type for `arrow-tiberius` operations. +/// Error type for Arrow SQL Server operations. #[derive(Debug, Snafu)] #[non_exhaustive] pub enum Error { diff --git a/src/lib.rs b/src/lib.rs index c1f46f3..882e956 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ -//! Apache Arrow and SQL Server bridge through Tiberius. +//! High-performance Apache Arrow `RecordBatch` bulk writer for Microsoft SQL Server. //! -//! `arrow-tiberius` bridges Apache Arrow and Microsoft SQL Server through the +//! Arrow SQL Server bridges Apache Arrow and Microsoft SQL Server through the //! Tiberius TDS driver. The crate is designed around a bidirectional boundary: //! Arrow schemas and [`RecordBatch`] values can be planned and written to SQL //! Server, and future read-side APIs can map SQL Server metadata and rows back @@ -100,7 +100,7 @@ //! //! ```toml //! [dependencies] -//! arrow-tiberius = "0.2" +//! arrow-sql-server = "0.3" //! ``` //! //! Depending on upstream `tiberius` separately creates a distinct crate type and @@ -118,10 +118,10 @@ //! //! # More Documentation //! -//! - [Arrow to SQL Server Type Mapping](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/type-mapping.md) -//! - [Observability](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/observability.md) -//! - [Integration Tests](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/integration-tests.md) -//! - [Writer Benchmarks](https://github.com/mag1cfrog/arrow-tiberius/blob/main/docs/benchmarks.md) +//! - [Arrow to SQL Server Type Mapping](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/type-mapping.md) +//! - [Observability](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/observability.md) +//! - [Integration Tests](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/integration-tests.md) +//! - [Writer Benchmarks](https://github.com/mag1cfrog/arrow-sql-server/blob/main/docs/benchmarks.md) /// Arrow-side schema metadata. pub mod arrow; @@ -131,7 +131,7 @@ pub mod connection; pub(crate) mod conversion; /// Structured diagnostics for planning and writing. pub mod diagnostic; -/// Error types for `arrow-tiberius`. +/// Error types for Arrow SQL Server. pub mod error; /// MSSQL-side schema metadata, identifiers, profile, and DDL helpers. pub mod mssql; diff --git a/xtask/src/main.rs b/xtask/src/main.rs index a565964..49628e0 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -1,4 +1,4 @@ -//! Repository maintenance tasks for `arrow-tiberius`. +//! Repository maintenance tasks for Arrow SQL Server. use std::env; use std::ffi::OsString;