pyvider
2025-01-18
Major rpcplugin API rename from `GRPC*` to `RPC*` prefix across all classes and
45 files · 8,585+ · 562-
GRPC -> RPC Class Rename
36 files changed
__init__.pyUpdated __init__.py (+12/-8 lines)client.pyUpdated client.py (+126/-156 lines)interface.goUpdated interface.go (+2/-2 lines)main.goUpdated main.go (+1/-1 lines)main.goUpdated main.go (+1/-1 lines)py-client.pyAdded py-client.py (+153 lines)grpc.goUpdated grpc.go (+2/-2 lines)interface.goUpdated interface.go (+4/-4 lines)exception.pyUpdated exception.py (+5/-5 lines)protocol.pyUpdated protocol.py (+2/-2 lines)server.pyUpdated server.py (+14/-7 lines)test_server.pyUpdated test_server.py (+14/-13 lines)run_server.pyUpdated run_server.py (+6/-6 lines)run_tcp_server.pyUpdated run_tcp_server.py (+4/-4 lines)run_unix_server.pyUpdated run_unix_server.py (+4/-4 lines)test_client.pyUpdated test_client.py (+16/-33 lines)log.mdAdded log.md (+11 lines)bundle-go-cty-docs.txtAdded bundle-go-cty-docs.txt (+1653 lines)bundle-go-plugin-2025-01-18.txtAdded bundle-go-plugin-2025-01-18.txt (+5779 lines)README.mdUpdated README.md (+14/-1 lines)2025-01-18-1207-chatgpt-rpcplugin.txtAdded 2025-01-18-1207-chatgpt-rpcplugin.txt (+114 lines)2025-01-19-1108-claude.mdAdded 2025-01-19-1108-claude.md (+18 lines)basicUpdated basic (+0/-0 lines)counterUpdated counter (+0/-0 lines)counter-go-grpcUpdated counter-go-grpc (+0/-0 lines)handshake.pyUpdated handshake.py (+4/-3 lines)go-client-get.txtAdded go-client-get.txt (+137 lines)go-client-put.txtAdded go-client-put.txt (+136 lines)rpcplugin.sublime-projectAdded rpcplugin.sublime-project (+8 lines)conftest.pyUpdated conftest.py (+9/-113 lines)create_test_certs.shUpdated create_test_certs.sh (+2/-2 lines)test_client_grpc.pyUpdated test_client_grpc.py (+3/-3 lines)test_handshake_magic_cookie.pyUpdated test_handshake_magic_cookie.py (+1/-1 lines)x_test_minimal.pyUpdated x_test_minimal.py (+4/-4 lines)tcp.pyUpdated tcp.py (+6/-6 lines)unix.pyUpdated unix.py (+5/-5 lines)
- Renamed
GRPCPluginClienttoRPCPluginClientinclient.pydecouple internal3 files
client.pypy-client.pytest_client.py
- Renamed
GRPCPluginServertoRPCPluginServerinserver.pydecouple internal5 files
server.pytest_server.pyrun_server.pyrun_tcp_server.pyrun_unix_server.py
- Renamed
GRPCPluginErrortoRPCPluginErrorinexception.pyalong with all subclasses inheriting from it decouple internal1 file
exception.py
- Renamed
PluginProtocoltoRPCPluginProtocolinprotocol.pydecouple internal1 file
protocol.py
- Updated
__init__.pyexports to use newRPC*names and addedRPCPluginConfiginterface internal1 file
__init__.py
- Updated all Go example files (
plugin-go-client/main.go,plugin-go-server/main.go,shared/interface.go) to referenceKVRPCPlugininstead ofKVGRPCPlugininterface internal4 files
interface.gomain.gomain.gointerface.go
RPCPluginConfig
1 file changed
config.pyAdded config.py (+85 lines)
- Added new
config.pymodule withRPCPluginConfigclass for centralized environment variable validation baseline internal1 file
config.py
- Validates required env vars:
PLUGIN_MAGIC_COOKIE_KEY,PLUGIN_MAGIC_COOKIE,PLUGIN_PROTOCOL_VERSIONS,PLUGIN_TRANSPORTS,PLUGIN_AUTO_MTLSbaseline internal42 files
__init__.pyclient.pyconfig.pyREADME.md2025-01-18-1207-chatgpt-rpcplugin.txt2025-01-19-1108-claude.mdbasiccountercounter-go-grpcinterface.gomain.gocomments.mdenv.shgo-kv-example-log.txtmain.gomain.gopy-client.pygrpc.gointerface.gotest_basic.pytest_kv_impl_1638.pytest_kv_integration.pyexception.pyhandshake.pygo-client-get.txtgo-client-put.txtprotocol.pyrpcplugin.sublime-projectsecurity.pyserver.pytest_server.pyconftest.pycreate_test_certs.shrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pyx_test_minimal.pytcp.pyunix.py
- Includes parsing logic for protocol versions (comma-separated integers) and transport types
interface
internal
42 files
__init__.pyclient.pyconfig.pyREADME.md2025-01-18-1207-chatgpt-rpcplugin.txt2025-01-19-1108-claude.mdbasiccountercounter-go-grpcinterface.gomain.gocomments.mdenv.shgo-kv-example-log.txtmain.gomain.gopy-client.pygrpc.gointerface.gotest_basic.pytest_kv_impl_1638.pytest_kv_integration.pyexception.pyhandshake.pygo-client-get.txtgo-client-put.txtprotocol.pyrpcplugin.sublime-projectsecurity.pyserver.pytest_server.pyconftest.pycreate_test_certs.shrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pyx_test_minimal.pytcp.pyunix.py
Client STDERR Relay and Channel Creation
1 file changed
grpc.ssl_channel_credentialsUpdated grpc.ssl_channel_credentials
- Replaced async
_relay_stderrwith a synchronous threading-based approach usingthreading.Thread(daemon=True)to read plugin STDERR interface internal1 file
client.py
- Simplified
_create_grpc_channelto usegrpc.ssl_channel_credentialsdirectly with server cert as root, removing the oldSSLContext-based approach and multiple dead code variants (X1843_create_grpc_channel,X1823_create_grpc_channel) deprecate internal1 file
grpc.ssl_channel_credentials
- Added Unix socket endpoint formatting (
unix:prefix) and channel options for hostname override interface errata1 file
client.py
- Changed error handling to raise
HandshakeErrorinstead of generic exceptions throughout client lifecycle methods remediate internal2 files
README.mdpriming.md
Security Module Reorganization
1 file changed
security.pyUpdated security.py (+211/-158 lines)
- Moved
generate_rsa_keypair,create_self_signed_x509_certificate, andcreate_ssl_server_credentialsto the bottom ofsecurity.pyfor better organization decouple internal1 file
security.py
- Removed duplicate imports (
base64,x509,serialization) decouple internal1 file
security.py
- Added
normalize_pemto client imports for PEM certificate normalization during handshake harden internal1 file
security.py
Handshake and Logging
1 file changed
logger.debugUpdated logger.debug
- Changed verbose
logger.debugcalls tologger.trace(999, ...)for handshake response content (effectively silencing them) decouple behavioral1 file
logger.debug
- Updated log messages to use more descriptive emoji prefixes (e.g., transport-related logs use train emoji)
decouple
behavioral
2 files
log.mdhandshake.py
Python Client Example
7 files changed
main.goUpdated main.go (+1/-1 lines)comments.mdUpdated comments.md (+1/-1 lines)env.shUpdated env.sh (+1/-1 lines)go-kv-example-log.txtAdded go-kv-example-log.txt (+1 lines)test_basic.pyUpdated test_basic.py (+5/-5 lines)test_kv_impl_1638.pyUpdated test_kv_impl_1638.py (+6/-6 lines)test_kv_integration.pyUpdated test_kv_integration.py (+4/-4 lines)