ethanlin01x commented on issue #3742:
URL: https://github.com/apache/iggy/issues/3742#issuecomment-5093729602

   @slbotbm before I start, does this shape look right?
   
   ```python
   config = TcpClientConfig(
       server_address="127.0.0.1:8090",
       auto_login=AutoLogin.username_password("iggy", "iggy"),
       reconnection=TcpClientReconnectionConfig(
           enabled=True,
           max_retries=10,
           interval=timedelta(seconds=2),
           reestablish_after=timedelta(seconds=30),
       ),
       heartbeat_interval=timedelta(seconds=5),
   )
   client = IggyClient(config)
   ```
   
   This is the fuller version from the description, as a config object rather 
than a builder, since Python has keyword arguments.
   
   - Abbreviated above. The type carries all nine `TcpClientConfig` fields, so 
`tls_enabled`, `tls_domain`, `tls_ca_file`, `tls_validate_certificate` and 
`nodelay` are there too.
   - Names match the Rust types so they stay searchable.
   - Keyword-only, since several of the bools sit next to each other.
   - `IggyClient("host:port")` keeps working, so existing tests don't churn.
   
   I'd start with the TCP types wired into the constructor. Config is 
per-transport in the Rust SDK, so QUIC/HTTP/WebSocket would each need their own 
type later, which overlaps with #2835. Should this issue cover those as well, 
or stay TCP-only?
   
   @bartoszkobylinski, does this cover what you needed, or is there an option 
missing?
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to