Releases: universal-tool-calling-protocol/elixir-utcp
ExUtcp v0.3.1
Overview
ExUtcp v0.3.1 introduces WebRTC Transport for peer-to-peer communication, completing Phase 3: Extended Protocols. This release enables direct device-to-device tool calling with WebRTC data channels, NAT traversal, and secure DTLS encryption.
Changes from v0.3.0
Added
- WebRTC Transport with peer-to-peer communication capabilities using WebRTC data channels.
- ExWebRTC library integration providing W3C WebRTC API implementation in pure Elixir.
- WebRTC connection management with automatic signaling protocol handling.
- ICE candidate handling with STUN/TURN server support for NAT traversal.
- WebRTC data channels for reliable tool communication between peers.
- Peer-to-peer tool calling without requiring central server infrastructure.
- WebRTC signaling server client for SDP offer/answer and ICE candidate exchange.
- Configurable ICE servers with support for public STUN and private TURN servers.
- DTLS encryption for secure peer-to-peer communication by default.
- WebRTC streaming support with data channel multiplexing for concurrent operations.
- 18 comprehensive WebRTC tests covering transport features and configuration.
- WebRTC examples with complete setup guide and configuration instructions.
- Sobelow security analysis tool integration for enhanced code security scanning.
Changed
- Updated Client module to include WebRTC transport in default transports list.
- Enhanced Providers module with WebRTC provider configuration and ICE server setup.
- Updated transport count from 7 to 8 transports with WebRTC addition.
- Improved documentation with WebRTC setup guide and use cases.
Fixed
- WebRTC provider configuration with proper ICE server defaults (Google STUN servers).
- Connection lifecycle management for WebRTC peers with automatic reconnection.
- Data channel message handling and JSON serialization for tool calls.
Phase 3 Completion
With v0.3.1, Phase 3: Extended Protocols is now complete with WebRTC transport implementation.
Release Notes - ExUtcp v0.3.0
Overview
ExUtcp v0.3.0 introduces comprehensive Monitoring and Metrics capabilities, completing Phase 2 of the enhanced features roadmap. This release provides production-ready monitoring with telemetry integration, Prometheus metrics, health checks, and performance analysis.
Changes from v0.2.9
Added
- Monitoring and Metrics system with telemetry integration for all UTCP operations.
- Telemetry events for tool calls, searches, provider registration, and connection lifecycle.
- PromEx integration for Prometheus metrics collection and visualization with custom dashboards.
- Health check system for monitoring transport and component health with automatic status reporting.
- Performance monitoring with operation timing, statistical analysis, and threshold-based alerting.
- Metrics collection system supporting counters, gauges, histograms, and summaries.
- System monitoring for memory usage, process counts, scheduler utilization, and garbage collection.
- Performance alerts and threshold-based monitoring for proactive issue detection.
- Custom metrics recording and aggregation for application-specific monitoring needs.
- Monitoring dashboard configuration with PromEx and Grafana integration support.
- 15+ comprehensive monitoring tests covering telemetry, health checks, and performance measurement.
- Monitoring examples demonstrating all monitoring capabilities and integration patterns.
Changed
- Enhanced Client module with integrated monitoring and performance measurement for all operations.
- Added telemetry events to tool calls and search operations for comprehensive performance tracking.
- Improved error handling with performance metrics collection for failed operations and debugging.
- Updated Client API with monitoring functions (get_monitoring_metrics, get_health_status, get_performance_summary).
Fixed
- Performance measurement error handling with proper telemetry emission for both success and failure cases.
- Health check system robustness with fallback mechanisms when components are unavailable.
- Metrics collection reliability with graceful degradation when monitoring services are not running.
Release Notes - ExUtcp v0.2.8
Overview
ExUtcp v0.2.8 introduces TCP/UDP transport support and comprehensive test configuration improvements. This release completes the low-level network protocol implementation and establishes a robust testing framework with proper integration test isolation.
Changes from v0.2.7
Added
- TCP/UDP Transport: Complete implementation of low-level network protocols with connection management, pooling, and streaming support.
- TCP/UDP connection behaviors and testable modules for proper mocking and testing.
- Test configuration system with integration test exclusion by default.
- Proper test tagging system with @tag :integration and @tag :unit for test categorization.
- TCP/UDP transport retry logic with exponential backoff for connection resilience.
- TCP/UDP transport integration tests for real network connection validation.
- TCP/UDP transport mock tests with Mox integration for isolated unit testing.
- TCP/UDP transport examples demonstrating usage patterns.
Changed
- Test helper configuration now excludes integration tests by default (mix test).
- Integration tests require explicit inclusion (mix test --include integration).
- TCP connection tests properly categorized as integration tests instead of unit tests.
- Improved test isolation and reliability by separating network-dependent tests.
- Enhanced test documentation and organization for better developer experience.
Fixed
- Test suite reliability by implementing proper separation between unit and integration tests.
- TCP/UDP mock test isolation issues with unique GenServer process names.
- Test timeout issues in TCP/UDP mock tests through proper Mox configuration.
- Proper categorization of network-dependent tests to prevent CI/CD flakiness.
- Test configuration to ensure consistent behavior across development and production environments.
Future Roadmap
- Phase 3: Extended Protocol Support: Focus on WebRTC transport implementation.
- Phase 4: Enterprise Features: Advanced Search Algorithms, Monitoring and Metrics, Batch Operations.
Links
- GitHub Repository
- Hex Package
- HexDocs
Release Notes - ExUtcp v0.2.7
Overview
ExUtcp v0.2.7 introduces the OpenAPI Converter, enabling automatic discovery and conversion of OpenAPI specifications into UTCP tools. This release completes the gap analysis for OpenAPI support and provides comprehensive tool generation capabilities.
Changes from v0.2.6
Added
- OpenAPI Converter module with automatic API discovery and tool generation
- Support for OpenAPI 2.0 (Swagger) and OpenAPI 3.0 specifications
- JSON and YAML specification parsing capabilities
- URL and file-based specification loading
- Authentication scheme mapping for API Key, Basic, Bearer, OAuth2, and OpenID Connect
- Tool generation from OpenAPI operations with proper parameter mapping
- Client integration methods: convert_openapi, convert_multiple_openapi, validate_openapi
- 12 comprehensive OpenAPI Converter unit tests
- OpenAPI Converter examples and documentation
Changed
- Updated gap analysis table to reflect 100% OpenAPI Converter coverage
- Enhanced README with OpenAPI Converter usage examples and documentation
- Updated test count from 260+ to 272+ tests
- Updated priority recommendations to mark OpenAPI Converter as completed
Fixed
- Corrected Elixir type usage patterns in OpenAPI Converter implementation
- Fixed infinite recursion in schema parsing functions
- Improved content type handling for URL-based specification loading
- Resolved prefix duplication in tool name generation
- Fixed argument error in security scheme parsing with proper tuple handling
- Corrected authentication parameter mapping between OpenAPI and UTCP formats
Technical Details
OpenAPI Converter Features
- Parses OpenAPI 2.0 and 3.0 specifications from JSON and YAML formats
- Converts OpenAPI operations into UTCP tools with proper input/output schemas
- Maps OpenAPI security schemes to UTCP authentication configurations
- Supports variable substitution in authentication parameters
- Handles both URL and file-based specification loading
- Provides validation capabilities for OpenAPI specifications
Integration
- Seamlessly integrated with existing Client interface
- Maintains consistency with existing UTCP patterns
- Supports all existing authentication methods
- Compatible with all transport layers
Future Roadmap
- Phase 2: Enhanced Features: Focus on Advanced Search Algorithms, Monitoring and Metrics, and Batch Operations
- Phase 3: Extended Protocol Support: Implement TCP/UDP, WebRTC, Server-Sent Events, and Streamable HTTP transports
- Phase 4: Enterprise Features: Advanced Configuration Management, Custom Variable Loaders, API Documentation Generation, and Performance Profiling
Links
Release Notes - ExUtcp v0.2.7
Release Notes - ExUtcp v0.2.7
Overview
ExUtcp v0.2.7 introduces the OpenAPI Converter, enabling automatic discovery and conversion of OpenAPI specifications into UTCP tools. This release completes the gap analysis for OpenAPI support and provides comprehensive tool generation capabilities.
Changes from v0.2.6
Added
- OpenAPI Converter module with automatic API discovery and tool generation
- Support for OpenAPI 2.0 (Swagger) and OpenAPI 3.0 specifications
- JSON and YAML specification parsing capabilities
- URL and file-based specification loading
- Authentication scheme mapping for API Key, Basic, Bearer, OAuth2, and OpenID Connect
- Tool generation from OpenAPI operations with proper parameter mapping
- Client integration methods: convert_openapi, convert_multiple_openapi, validate_openapi
- 12 comprehensive OpenAPI Converter unit tests
- OpenAPI Converter examples and documentation
Changed
- Updated gap analysis table to reflect 100% OpenAPI Converter coverage
- Enhanced README with OpenAPI Converter usage examples and documentation
- Updated test count from 260+ to 272+ tests
- Updated priority recommendations to mark OpenAPI Converter as completed
Fixed
- Corrected Elixir type usage patterns in OpenAPI Converter implementation
- Fixed infinite recursion in schema parsing functions
- Improved content type handling for URL-based specification loading
- Resolved prefix duplication in tool name generation
- Fixed argument error in security scheme parsing with proper tuple handling
- Corrected authentication parameter mapping between OpenAPI and UTCP formats
Technical Details
OpenAPI Converter Features
- Parses OpenAPI 2.0 and 3.0 specifications from JSON and YAML formats
- Converts OpenAPI operations into UTCP tools with proper input/output schemas
- Maps OpenAPI security schemes to UTCP authentication configurations
- Supports variable substitution in authentication parameters
- Handles both URL and file-based specification loading
- Provides validation capabilities for OpenAPI specifications
Integration
- Seamlessly integrated with existing Client interface
- Maintains consistency with existing UTCP patterns
- Supports all existing authentication methods
- Compatible with all transport layers
Future Roadmap
- Phase 2: Enhanced Features: Focus on Advanced Search Algorithms, Monitoring and Metrics, and Batch Operations
- Phase 3: Extended Protocol Support: Implement TCP/UDP, WebRTC, Server-Sent Events, and Streamable HTTP transports
- Phase 4: Enterprise Features: Advanced Configuration Management, Custom Variable Loaders, API Documentation Generation, and Performance Profiling
Links
ExUtcp v0.2.5a
Release Notes - ExUtcp v0.2.5
Overview
ExUtcp v0.2.5 represents a major milestone in testing and reliability. This release focuses on comprehensive test coverage, improved test architecture, and enhanced documentation quality.
Key Highlights
Testing Excellence
- 260+ Unit Tests: Complete test coverage across all transport implementations
- Zero Test Failures: Successfully resolved all 75 previous test failures
- Mock-Based Testing: Comprehensive unit testing with Mox mocks for all transports
- Integration Testing: Proper separation of unit and integration tests with tagging
Architecture Improvements
- Testable Modules: Refactored transport modules to support mock injection
- GenServer Lifecycle: Proper handling of GenServer lifecycle in unit tests
- Retry Logic: Corrected test expectations for retry mechanisms
- Mock Verification: Enhanced mock verification and expectation management
Documentation Enhancements
- Protocol Links: Added links to major protocols (GraphQL, gRPC, WebSocket, MCP)
- Library Links: Referenced key libraries (WebSockex, Mox, Protocol Buffers)
- Clean Formatting: Removed decorative elements for professional documentation
- Updated Gap Analysis: Reflected current implementation status with 100% testing coverage
Technical Details
Test Architecture
- Unit Tests: 260 tests using Mox mocks for isolated testing
- Integration Tests: 76 tests properly tagged and excluded from unit test runs
- Mock Injection: Testable modules support dependency injection for testing
- Retry Testing: Proper expectations for retry logic (4 calls: 1 initial + 3 retries)
Transport Coverage
All 6 production-ready transports now have comprehensive test coverage:
- HTTP/HTTPS with OpenAPI support
- CLI command-line tool integration
- WebSocket real-time communication
- gRPC high-performance RPC with Protocol Buffers
- GraphQL API integration
- MCP with JSON-RPC 2.0
Quality Metrics
- Test Coverage: 100% for all transport implementations
- Test Reliability: 0 failures across 260 unit tests
- Documentation: Enhanced with protocol and library references
- Code Quality: Improved maintainability and testability
Migration Guide
No breaking changes in this release. All existing functionality remains compatible.
Future Roadmap
- Advanced search algorithms
- OpenAPI converter for automatic API discovery
- Monitoring and metrics
- Batch operations
- Additional transport protocols (TCP/UDP, WebRTC)
Links
ExUtcp v0.2.5
Release Notes - ExUtcp v0.2.5
Overview
ExUtcp v0.2.5 represents a major milestone in testing and reliability. This release focuses on comprehensive test coverage, improved test architecture, and enhanced documentation quality.
Key Highlights
Testing Excellence
- 260+ Unit Tests: Complete test coverage across all transport implementations
- Zero Test Failures: Successfully resolved all 75 previous test failures
- Mock-Based Testing: Comprehensive unit testing with Mox mocks for all transports
- Integration Testing: Proper separation of unit and integration tests with tagging
Architecture Improvements
- Testable Modules: Refactored transport modules to support mock injection
- GenServer Lifecycle: Proper handling of GenServer lifecycle in unit tests
- Retry Logic: Corrected test expectations for retry mechanisms
- Mock Verification: Enhanced mock verification and expectation management
Documentation Enhancements
- Protocol Links: Added links to major protocols (GraphQL, gRPC, WebSocket, MCP)
- Library Links: Referenced key libraries (WebSockex, Mox, Protocol Buffers)
- Clean Formatting: Removed decorative elements for professional documentation
- Updated Gap Analysis: Reflected current implementation status with 100% testing coverage
Technical Details
Test Architecture
- Unit Tests: 260 tests using Mox mocks for isolated testing
- Integration Tests: 76 tests properly tagged and excluded from unit test runs
- Mock Injection: Testable modules support dependency injection for testing
- Retry Testing: Proper expectations for retry logic (4 calls: 1 initial + 3 retries)
Transport Coverage
All 6 production-ready transports now have comprehensive test coverage:
- HTTP/HTTPS with OpenAPI support
- CLI command-line tool integration
- WebSocket real-time communication
- gRPC high-performance RPC with Protocol Buffers
- GraphQL API integration
- MCP with JSON-RPC 2.0
Quality Metrics
- Test Coverage: 100% for all transport implementations
- Test Reliability: 0 failures across 260 unit tests
- Documentation: Enhanced with protocol and library references
- Code Quality: Improved maintainability and testability
Migration Guide
No breaking changes in this release. All existing functionality remains compatible.
Future Roadmap
- Advanced search algorithms
- OpenAPI converter for automatic API discovery
- Monitoring and metrics
- Batch operations
- Additional transport protocols (TCP/UDP, WebRTC)
Links
release 0.2.3
Merge pull request #34 from thanos/graphql Graphql
release 0.2.2
Changelog
All notable changes to this project will be documented in this file.
[0.2.2] - 2025-09-29
Added
- Production-ready gRPC transport implementation with Protocol Buffer integration
- gRPC connection management with pooling and lifecycle management
- gRPC authentication support for API Key, Basic, and OAuth2
- gRPC error recovery with retry logic and exponential backoff
- gNMI integration for network management operations
- gNMI Get, Set, and Subscribe operations with path validation
- Protocol Buffer code generation from .proto files
- Comprehensive gRPC testing suite with 82 tests
- gRPC production example demonstrating all features
Changed
- Enhanced gRPC transport with production-ready features
- Updated gRPC implementation to use real Protocol Buffer integration
- Improved error handling and retry mechanisms for gRPC operations
- Enhanced connection pooling and lifecycle management
[0.2.1] - 2025-09-28
Added
- Production-ready WebSocket transport implementation with real WebSockex integration
- WebSocket connection management with pooling and lifecycle management
- WebSocket error recovery with retry logic and exponential backoff
- WebSocket performance optimizations with connection reuse and message batching
- WebSocket connection behavior for testability
- Comprehensive WebSocket mock-based testing suite
- WebSocket testable module for isolated unit testing
Changed
- Enhanced WebSocket transport with production-ready features
- Improved WebSocket testing with Mox mocks
- Updated WebSocket implementation to use real WebSocket connections
- Enhanced error handling and retry mechanisms for WebSocket operations
[0.2.0] - 2025-09-27
Added
- WebSocket transport implementation for real-time bidirectional communication
- WebSocket provider support with full configuration options
- WebSocket streaming functionality for real-time data streaming
- Comprehensive WebSocket test suite
- WebSocket client and server examples
- Enhanced provider type system with WebSocket-specific fields
- gRPC transport implementation for high-performance RPC calls
- gRPC provider support with Protocol Buffer integration
- gRPC streaming functionality for real-time data streaming
- Comprehensive gRPC test suite
- gRPC client example
- Protocol Buffer definition file (proto/utcp.proto)
- Enhanced provider type system with gRPC-specific fields
Changed
- Updated client to support WebSocket and gRPC providers
- Enhanced provider parsing to handle WebSocket and gRPC configuration
- Extended type definitions for WebSocket and gRPC providers
- Updated gap analysis to reflect 33% transport coverage (4/12 types)
[0.1.0] - 2024-01-XX
Added
- Initial release of ExUtcp library
- HTTP transport implementation
- CLI transport implementation
- Core UTCP client functionality
- Tool discovery and execution
- Provider management system
- Authentication support (API Key, Basic, OAuth2)
- Configuration management with variable substitution
- Comprehensive test suite
- Example applications and documentation
with WebSockets Transport
0.2.1 updated readme