Skip to content

Releases: A3S-Lab/Search

v0.9.0

17 Mar 11:21

Choose a tag to compare

  • style: apply cargo fmt
  • chore: bump version to v0.9.0
  • feat: Lightpanda integration and browser field rename
  • fix(node-sdk): add missing browser-related fields to TypeScript types
  • ci: add GitHub Actions CI workflow and release automation
  • docs: add Discord community link
  • docs: add Windows platform support to README for v0.8.0

v0.7.0

18 Feb 14:22

Choose a tag to compare

  • Bing engine (HTTP)
  • HealthMonitor with configurable intervals and thresholds
  • HCL configuration file support (SearchConfig::load / SearchConfig::parse)
  • Dynamic proxy pool with ProxyProvider trait and spawn_auto_refresh
  • AtomicBool enabled toggle for runtime proxy pool control
  • SDK proxy pool alignment (Node.js + Python)
  • cargo fmt fixes

v0.6.0

15 Feb 16:57

Choose a tag to compare

  • chore: bump version to v0.6.0
  • ci: build CLI with default features (include headless)
  • ci: add CLI binary build, GitHub Release assets, and Homebrew auto-update

v0.5.5

15 Feb 15:36

Choose a tag to compare

  • fix(ci): strip nested workspace sections from search Cargo.toml in CI
  • fix(ci): proper updater stub in setup-workspace.sh, fix workspace root conflicts
  • fix(ci): run CI checks directly from repo root, create updater stub inline
  • fix(ci): use working-directory for fmt to avoid multiple workspace roots
  • chore: bump version to v0.5.5, add automated release workflow

v0.5.4

15 Feb 15:05

Choose a tag to compare

Improvements

  • Add release profile optimization (thin LTO, strip, panic=abort) for smaller binaries
  • Add workspace definition for standalone builds
  • Align all SDK versions to core version (0.5.4)

SDK Updates

  • Node SDK (@a3s-lab/search): 0.5.4
  • Python SDK (a3s-search): 0.5.4

v0.5.3

10 Feb 05:59

Choose a tag to compare

Hotfix

  • Fix UTF-8 panic: Prevent panic when truncating multi-byte UTF-8 content (e.g., Chinese/CJK characters from Baidu results). Replaced byte-level slicing with safe truncate_str() using char_indices().
  • Added 7 tests for UTF-8 truncation edge cases (Chinese, emoji, mixed CJK)

Full Changelog: v0.5.2...v0.5.3

v0.5.2 - Unified PageFetcher for Proxy Support

09 Feb 18:04

Choose a tag to compare

What's Changed

Proxy Support for All Engines

  • Refactored all non-headless engines (DuckDuckGo, Brave, Sogou, So360, Wikipedia) to use the unified PageFetcher abstraction
  • The -p (proxy) flag now works for all engines, not just headless ones
  • Each engine accepts a custom PageFetcher via with_fetcher() / with_http_fetcher()

API Changes

  • DuckDuckGo::with_fetcher(fetcher) — inject custom fetcher
  • Brave::with_fetcher(fetcher) — inject custom fetcher
  • Sogou::with_fetcher(fetcher) — inject custom fetcher
  • So360::with_fetcher(fetcher) — inject custom fetcher
  • Wikipedia::with_http_fetcher(fetcher) — inject custom HTTP fetcher (JSON API)
  • All engines still support ::new() with default fetcher (backward compatible)

Tests

  • 267 tests passing (added 5 new with_fetcher tests)

Install

# Homebrew (macOS)
brew install A3S-Lab/tap/a3s-search

# Cargo
cargo install a3s-search

# Binary download
# See assets below

Full Changelog: v0.5.1...v0.5.2

v0.5.1 - Auto Chrome Detection & Headless Default

09 Feb 15:52

Choose a tag to compare

What's Changed

🚀 Features

  • Auto-detect and download Chrome for headless engines — no manual Chrome installation required. The engine automatically finds an existing Chrome/Chromium binary or downloads one on demand.
  • Headless mode is now the default — the --headless CLI flag has been removed. Headless browser engines (Baidu, Bing China) are enabled by default. Use --no-default-features at build time to disable.

🧪 Testing & Quality

  • Added 44 new unit tests (207 → 251 total), improving code coverage from 88% to 91.15%
  • Added justfile with coverage support (just coverage)

📦 Install

Homebrew (macOS):

brew install A3S-Lab/tap/a3s-search

Cargo:

cargo install a3s-search

Binary (macOS ARM64):
Download a3s-search-0.5.1-darwin-arm64.tar.gz below.

Full Changelog

v0.5.0...v0.5.1

v0.5.0 - Re-add Baidu & Bing China

09 Feb 10:24

Choose a tag to compare

What's New

Baidu & Bing China Re-added

  • Baidu (百度): Re-added behind headless feature using PageFetcher pattern
  • Bing China (必应中国): Re-added behind headless feature using PageFetcher pattern
  • Both engines use the shared BrowserPool for efficient Chrome process management

Engine Count: 8 Total

  • 5 default engines: DuckDuckGo, Brave, Wikipedia, Sogou, 360 Search
  • 3 headless engines: Google, Baidu, Bing China (require --headless flag + Chrome)

Quality

  • 222 unit tests (198 library + 24 CLI), 94.36% line coverage
  • Clippy clean, zero warnings

Usage

# Search with Baidu and Bing China
a3s-search "Rust 编程" -e baidu,bing_cn --headless

# All headless engines
a3s-search "Rust" -e g,baidu,bing_cn --headless

v0.4.0 - Headless Browser Support

09 Feb 10:08

Choose a tag to compare

What's New

Headless Browser Support

  • PageFetcher trait: Pluggable page fetching abstraction (plain HTTP or headless browser)
  • HttpFetcher: reqwest-based PageFetcher for server-rendered pages
  • BrowserPool: Shared Chrome process with tab concurrency control (semaphore-based)
  • BrowserFetcher: CDP-based PageFetcher for JavaScript-rendered pages
  • WaitStrategy: Configurable wait strategies (Load, NetworkIdle, Selector, Delay)

Google Engine Re-added

  • Google search engine re-added behind headless Cargo feature
  • Uses CSS selectors: div.g, h3, a[href], div.VwiC3b
  • Weight: 1.5 (higher trust), Timeout: 10s

CLI Updates

  • --headless flag for enabling headless browser mode
  • a3s-search engines now shows headless engines section
  • Graceful warnings when headless feature not compiled in

Quality

  • 207 unit tests (183 library + 24 CLI), 94.07% line coverage
  • Zero impact on default build (all browser code behind headless feature)
  • Clippy clean, zero warnings

Install

# Homebrew
brew tap A3S-Lab/tap && brew install a3s-search

# Cargo
cargo install a3s-search

# With headless support
cargo install a3s-search --features headless