xbbg 1.0.0
xbbg 1.0.0
xbbg 1.0.0 is the first stable release of the new v1 line and the full jump from 0.12.2 to 1.0.0.
This is not a small patch over 0.12.x. It is the point where the Rust-powered engine, async-first execution model, modern packaging, richer streaming surfaces, and the broader v1 API all become the supported stable foundation for the project.
Why this release matters
If you are coming from 0.12.2, the headline is simple:
- same day-to-day xbbg API shape where it matters (
bdp,bdh,bds,bdib,bdtickare still here) - much stronger engine underneath
- better concurrency, streaming, diagnostics, and deployment options
- a more modern output/backend model for production Python workflows
Highlights from the 0.12.2 -> 1.0.0 transition
Rust-powered core, now the stable default
The v1 line moves request execution and the core engine into Rust while keeping the familiar Python surface for normal Bloomberg workflows.
That gives xbbg 1.0 a much stronger base for:
- lower overhead request handling
- zero-copy Arrow transport into Python paths
- safer concurrency and lifecycle management
- richer diagnostics and more predictable runtime behavior
Async-first API and much more capable streaming
The v1 cycle turned async support from an add-on into a first-class part of the library.
Stable 1.0 now includes:
- native async request variants across the API surface
- stronger real-time subscription lifecycle handling
- richer streaming metadata and observability
- optional reconnect/recovery behavior
all_fieldssupport for subscriptions and streaming helpers- safer startup/shutdown behavior in long-running Python apps
Built for real deployment environments
Across the 1.0 prerelease cycle, xbbg gained the connection and infrastructure features needed for production environments:
- structured engine/session setup through
configure() - the
Engineclass for multi-engine routing - SOCKS5 proxy support
- TLS support
- ZFP over leased lines
- multi-server failover
- worker health visibility and request telemetry
- better handling of auth/session startup failures and reconnect scenarios
Better developer experience and packaging
1.0 also modernizes the library around a cleaner toolchain and packaging story:
- Python 3.10–3.14 support
- Linux / Windows / macOS wheels, including macOS ARM64
- auto-generated type stubs for
xbbg._core - docs rewritten and expanded for migration, async, streaming, backends, configuration, and type mappings
- stable v1 docs site and release metadata aligned with the shipped API surface
Notable capabilities and improvements delivered during the 1.0 cycle
The prerelease cycle added or stabilized a broad set of user-facing improvements, including:
- intraday timezone controls via
request_tz/output_tz - backend availability checks and expanded backend support
- stronger BQL / refdata error reporting
- canonical Rust-backed Python exception hierarchy
- field-validation controls for request wrappers
- request middleware for telemetry and wrappers
- auth support across
user,app,userapp,dir,manual, andtokenmodes - identity lifecycle and entitlement helpers
- runtime SDK version reporting and SDK logging integration
- retry / reconnect resilience in the Rust engine
- improved subscription health, failure, and session status surfaces
- ABI compatibility checks across Bloomberg SDK versions
- UTC-aware subscription event timestamps in tick-mode and raw subscription output
Migration notes for users coming from 0.12.2
This release is intended to keep the familiar Bloomberg workflow while making some important behavior and packaging changes explicit.
1) The biggest behavior change: output shape defaults
The largest migration item is output shape.
In 0.x, many workflows assumed wide pandas-style outputs by default.
In 1.0, the default shape is long format.
That means if your downstream code expects wide tables or MultiIndex columns, you will likely need to:
- switch to
format='semi_long'where appropriate, or - explicitly
pivot()long output into the shape your code expects
2) pandas is no longer a hard dependency
xbbg 1.0 uses Arrow transport and narwhals by default.
If your old environment implicitly relied on pandas always being present, install it explicitly and use:
backend='pandas'for pandas DataFrames
3) Engine/session setup changed
Connection setup now centers on configure() and the v1 engine model.
If you are upgrading old code that used legacy connection/setup helpers, review those flows and migrate them to the documented v1 engine/session configuration path.
4) Some deprecated surfaces were removed before stable
A few APIs/behaviors were intentionally not carried into stable 1.0 as-is:
Format.WIDEremoved- use
Format.SEMI_LONGor pivotFormat.LONG
- use
asset_config()removed- use
market_info(ticker)
- use
OverflowPolicy::DropOldestremoved for now- use
'drop_newest'or'block'
- use
5) If you need legacy behavior, use the legacy branch
The v1 line is a real architectural shift.
If you need exact legacy 0.x behavior rather than migrating, use the maintained legacy branch:
release/0.x
Reliability work that made 1.0 stable-worthy
The later RCs and betas were not just feature drops. They also closed important stability gaps before stable release, including fixes for:
- Python shutdown panics with active subscriptions
- engine startup races in auto-created/default-engine scenarios
- auth/session startup failures being masked downstream
- duplicate-correlation-ID auth failures
- subscription failure isolation in mixed-topic streams
- more actionable BQL and field-exception error handling
- UTC correctness for subscription event timestamps
Where to start
- Documentation: https://alpha-xone.github.io/xbbg/
- Migration guide: https://kj55-dev.github.io/xbbg/guides/migration/
- PyPI package: https://pypi.org/project/xbbg/1.0.0/
Full Changelog: v0.12.2...v1.0.0
