This directory contains detailed feature specifications and implementation plans for bringing the OpenSearch SDK to Rust. The features are based on analysis of both the Java SDK and Python SDK.
- Core Extension Framework - Foundation for all extensions
- Transport Protocol - Binary communication with OpenSearch
- REST API Framework - HTTP endpoint support
- Settings Management - Type-safe configuration
- Action System - Request/response handling
- Search Extensions - Queries, aggregations, scoring
- Analysis Extensions - Tokenizers, analyzers, filters
- Script Extensions - Custom scripting support
- Ingest Extensions - Data processing pipelines
- Mapper Extensions - Custom field types
- Discovery & Clustering - Node and service discovery
- Security Integration - Authentication and authorization
- Client Libraries - Rust client for OpenSearch
- Testing Framework - Extension testing utilities
- Migration Tools - Plugin to extension migration
- Basic transport protocol (Hello World)
- Complete extension framework
- Full transport protocol implementation
- Basic REST handler support
- Settings management system
- Action system with async support
- REST API registration and routing
- Basic client support
- Search extension support
- Analysis extension support
- Script extension support
- Ingest processor support
- Mapper extensions
- Extension-to-extension communication
- Security integration
- Performance optimizations
- Memory Safety: Leverage Rust's ownership system for safe concurrency
- Type Safety: Strong typing with compile-time guarantees
- Performance: Zero-cost abstractions and efficient async runtime
- Ergonomics: Intuitive APIs following Rust idioms
- Compatibility: Maintain protocol compatibility with Java/Python SDKs
| Feature | Java SDK | Python SDK | Rust SDK (Planned) |
|---|---|---|---|
| Extension Framework | Full | Basic | Basic (In Progress) |
| Transport Protocol | Full | Full | Partial (In Progress) |
| REST API | Full | Full | Planned |
| Settings | Full | Full | Planned |
| Search Extensions | Full | None | Planned |
| Analysis Extensions | Full | None | Planned |
| Script Extensions | Full | None | Planned |
| Client Support | Multiple | None | Planned |
Each feature document includes:
- Feature overview and motivation
- API design and interfaces
- Implementation plan with milestones
- Code examples
- Testing strategy
- Performance considerations
Start with the Core Extension Framework to understand the foundation of the SDK.