commits
Introduce a configurable safety lag duration to prevent race conditions where operations might be missed. https://github.com/did-method-plc/did-method-plc/issues/127
Track the wall-clock start time of HTTP requests in addition to the existing Instant measurement
to provide more accurate timing information for export responses
- Add dhat heap profiler integration for memory profiling
- Implement detailed fetch logging for sync operations
- Refactor mempool to support CID collection
- Update CLI with new profiling and logging flags
- Add documentation for memory profiling usage
Track and report time spent waiting for rate limits (fetch_wait_ms) and actual HTTP request duration (fetch_http_ms) during sync operations. This provides better visibility into performance characteristics of the sync process.
Add shutdown_rx parameter to sync_next_bundle to allow cancellation of ongoing sync operations
Modify fetch_operations to support cancellation during retries
Improve rate limiter to handle semaphore closure gracefully
Add detailed logging for rate limiter state before requests
Move rate limiter wait logging to be consistent across endpoints
Calculate refill rate using floating point division for precision
Add available_permits method for monitoring
- Include did_count in status endpoint response
- Refactor mempool stats handling in root endpoint
- Update DID resolver stats display to show bundled + mempool counts
- Add cursor format documentation to root endpoint
- Clean up endpoint descriptions and improve consistency
Implement new /random endpoint to sample random DIDs with configurable count and seed parameters. The endpoint returns JSON response containing sampled DIDs, count and seed used for reproducibility.
The visible_alias "q" is redundant since the command already has an alias "q". This simplifies the code without changing functionality.
Use parallel iteration to improve performance when sampling random DIDs. Separate the target selection and identifier retrieval steps for better efficiency.
- Replace rustc/cargo with rustup in CI dependencies
- Remove --all-features flag from install command
- Add server feature to default features
- Update README to reflect new default features
- Make internal modules private and only re-export types needed by BundleManager
- Remove broad re-exports and hide implementation details
- Update CLI to use crate-relative paths for internal types
Add descriptive module-level documentation comments to clearly explain the purpose and functionality of each module in the codebase. This improves code discoverability and maintainability.