mysql_replicator 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +79 -0
  4. data/CHANGELOG.md +5 -0
  5. data/CODE_OF_CONDUCT.md +132 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +115 -0
  8. data/Rakefile +12 -0
  9. data/Steepfile +22 -0
  10. data/docker-compose.yml +13 -0
  11. data/lib/mysql_replicator/binlog_client.rb +201 -0
  12. data/lib/mysql_replicator/binlogs/column_parser.rb +425 -0
  13. data/lib/mysql_replicator/binlogs/constants.rb +74 -0
  14. data/lib/mysql_replicator/binlogs/event_parser.rb +134 -0
  15. data/lib/mysql_replicator/binlogs/format_description_event_parser.rb +24 -0
  16. data/lib/mysql_replicator/binlogs/json_parser.rb +335 -0
  17. data/lib/mysql_replicator/binlogs/query_event_parser.rb +69 -0
  18. data/lib/mysql_replicator/binlogs/rotate_event_parser.rb +37 -0
  19. data/lib/mysql_replicator/binlogs/rows_event_parser.rb +161 -0
  20. data/lib/mysql_replicator/binlogs/table_map_event_parser.rb +155 -0
  21. data/lib/mysql_replicator/binlogs/xid_event_parser.rb +25 -0
  22. data/lib/mysql_replicator/connection.rb +226 -0
  23. data/lib/mysql_replicator/connections/auth.rb +303 -0
  24. data/lib/mysql_replicator/connections/handshake.rb +132 -0
  25. data/lib/mysql_replicator/connections/query.rb +322 -0
  26. data/lib/mysql_replicator/error.rb +6 -0
  27. data/lib/mysql_replicator/logger.rb +43 -0
  28. data/lib/mysql_replicator/string_io_util.rb +199 -0
  29. data/lib/mysql_replicator/string_util.rb +106 -0
  30. data/lib/mysql_replicator/version.rb +6 -0
  31. data/lib/mysql_replicator.rb +51 -0
  32. data/sig/generated/mysql_replicator/binlog_client.rbs +52 -0
  33. data/sig/generated/mysql_replicator/binlogs/column_parser.rbs +134 -0
  34. data/sig/generated/mysql_replicator/binlogs/constants.rbs +69 -0
  35. data/sig/generated/mysql_replicator/binlogs/event_parser.rbs +35 -0
  36. data/sig/generated/mysql_replicator/binlogs/format_description_event_parser.rbs +13 -0
  37. data/sig/generated/mysql_replicator/binlogs/json_parser.rbs +101 -0
  38. data/sig/generated/mysql_replicator/binlogs/query_event_parser.rbs +14 -0
  39. data/sig/generated/mysql_replicator/binlogs/rotate_event_parser.rbs +14 -0
  40. data/sig/generated/mysql_replicator/binlogs/rows_event_parser.rbs +39 -0
  41. data/sig/generated/mysql_replicator/binlogs/table_map_event_parser.rbs +31 -0
  42. data/sig/generated/mysql_replicator/binlogs/xid_event_parser.rbs +13 -0
  43. data/sig/generated/mysql_replicator/connection.rbs +103 -0
  44. data/sig/generated/mysql_replicator/connections/auth.rbs +76 -0
  45. data/sig/generated/mysql_replicator/connections/handshake.rbs +21 -0
  46. data/sig/generated/mysql_replicator/connections/query.rbs +62 -0
  47. data/sig/generated/mysql_replicator/error.rbs +6 -0
  48. data/sig/generated/mysql_replicator/logger.rbs +26 -0
  49. data/sig/generated/mysql_replicator/string_io_util.rbs +75 -0
  50. data/sig/generated/mysql_replicator/string_util.rbs +45 -0
  51. data/sig/generated/mysql_replicator/types.rbs +19 -0
  52. data/sig/generated/mysql_replicator/version.rbs +5 -0
  53. data/sig/generated/mysql_replicator.rbs +16 -0
  54. metadata +124 -0
@@ -0,0 +1,103 @@
1
+ # Generated from lib/mysql_replicator/connection.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ class Connection
5
+ type packet = { length: Integer, sequence_id: Integer, payload: String }
6
+
7
+ @handshake_info: MysqlReplicator::Connections::Handshake::handshake
8
+
9
+ @socket: TCPSocket
10
+
11
+ @connected: bool
12
+
13
+ @sequence_id: Integer
14
+
15
+ @database: String
16
+
17
+ @password: String
18
+
19
+ @user: String
20
+
21
+ @port: Integer
22
+
23
+ @host: String
24
+
25
+ # @rbs! attr_reader host: String
26
+ # @rbs! attr_reader port: Integer
27
+ # @rbs! attr_reader user: String
28
+ # @rbs! attr_reader password: String
29
+ # @rbs! attr_reader database: String
30
+ attr_reader host: untyped
31
+
32
+ # @rbs! attr_reader host: String
33
+ # @rbs! attr_reader port: Integer
34
+ # @rbs! attr_reader user: String
35
+ # @rbs! attr_reader password: String
36
+ # @rbs! attr_reader database: String
37
+ attr_reader port: untyped
38
+
39
+ # @rbs! attr_reader host: String
40
+ # @rbs! attr_reader port: Integer
41
+ # @rbs! attr_reader user: String
42
+ # @rbs! attr_reader password: String
43
+ # @rbs! attr_reader database: String
44
+ attr_reader user: untyped
45
+
46
+ # @rbs! attr_reader host: String
47
+ # @rbs! attr_reader port: Integer
48
+ # @rbs! attr_reader user: String
49
+ # @rbs! attr_reader password: String
50
+ # @rbs! attr_reader database: String
51
+ attr_reader password: untyped
52
+
53
+ # @rbs! attr_reader host: String
54
+ # @rbs! attr_reader port: Integer
55
+ # @rbs! attr_reader user: String
56
+ # @rbs! attr_reader password: String
57
+ # @rbs! attr_reader database: String
58
+ attr_reader database: untyped
59
+
60
+ # @rbs host: String
61
+ # @rbs port: Integer
62
+ # @rbs user: String
63
+ # @rbs password: String
64
+ # @rbs database: String
65
+ # @rbs return: void
66
+ def initialize: (?host: String, ?port: Integer, ?user: String, ?password: String, ?database: String) -> void
67
+
68
+ # @rbs return: void
69
+ def reset_sequence_id: () -> void
70
+
71
+ # @rbs return: -> bool
72
+ def connected?: () -> untyped
73
+
74
+ # @rbs return: -> void
75
+ def connect: () -> untyped
76
+
77
+ # @rbs sql: String
78
+ # @rbs return: MysqlReplicator::Connections::Query::queryResult | nil
79
+ def query: (String sql) -> (MysqlReplicator::Connections::Query::queryResult | nil)
80
+
81
+ # @rbs return: 'PONG' | 'ERROR'
82
+ def ping: () -> ("PONG" | "ERROR")
83
+
84
+ # @rbs return: void
85
+ def close: () -> void
86
+
87
+ # @rbs return: packet
88
+ def read_packet: () -> packet
89
+
90
+ # @rbs payload: String
91
+ # @rbs return: void
92
+ def send_packet: (String payload) -> void
93
+
94
+ # @rbs return: void
95
+ def flush_socket_buffer: () -> void
96
+
97
+ # @rbs return: Integer
98
+ def connection_id: () -> Integer
99
+
100
+ # @rbs return: MysqlReplicator::Connection
101
+ def dup: () -> MysqlReplicator::Connection
102
+ end
103
+ end
@@ -0,0 +1,76 @@
1
+ # Generated from lib/mysql_replicator/connections/auth.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ module Connections
5
+ class Auth
6
+ CLIENT_PLUGIN_AUTH: Integer
7
+
8
+ CLIENT_SECURE_CONNECTION: Integer
9
+
10
+ CLIENT_PROTOCOL_41: Integer
11
+
12
+ CLIENT_CONNECT_WITH_DB: Integer
13
+
14
+ CLIENT_MULTI_STATEMENTS: Integer
15
+
16
+ CLIENT_MULTI_RESULTS: Integer
17
+
18
+ # @rbs connection: MysqlReplicator::Connection
19
+ # @rbs user: String
20
+ # @rbs password: String
21
+ # @rbs database: String
22
+ # @rbs handshake_info: MysqlReplicator::Connections::Handshake::handshake
23
+ # @rbs return: void
24
+ def self.execute: (MysqlReplicator::Connection connection, String user, String password, String database, MysqlReplicator::Connections::Handshake::handshake handshake_info) -> void
25
+
26
+ # @rbs connection: MysqlReplicator::Connection
27
+ # @rbs user: String
28
+ # @rbs password: String
29
+ # @rbs database: String
30
+ # @rbs handshake_info: MysqlReplicator::Connections::Handshake::handshake
31
+ # @rbs return: void
32
+ def self.caching_sha2_password_auth: (MysqlReplicator::Connection connection, String user, String password, String database, MysqlReplicator::Connections::Handshake::handshake handshake_info) -> void
33
+
34
+ # @rbs packet: MysqlReplicator::Connection::packet
35
+ # @rbs return: :success | :challenge
36
+ def self.handle_caching_sha2_password_response: (MysqlReplicator::Connection::packet packet) -> (:success | :challenge)
37
+
38
+ # @rbs user: String
39
+ # @rbs password: String
40
+ # @rbs database: String
41
+ # @rbs handshake_info: MysqlReplicator::Connections::Handshake::handshake
42
+ # @rbs return: String
43
+ def self.build_caching_sha2_password_payload: (String user, String password, String database, MysqlReplicator::Connections::Handshake::handshake handshake_info) -> String
44
+
45
+ # Hash value for caching_sha2_password
46
+ # SHA256(password) XOR SHA256(SHA256(SHA256(password)) + salt)
47
+ #
48
+ # @rbs password: String
49
+ # @rbs salt: String
50
+ # @rbs return: String
51
+ def self.build_caching_sha2_password_hash: (String password, String salt) -> String
52
+
53
+ # @rbs password: String
54
+ # @rbs public_key: String
55
+ # @rbs scramble: String
56
+ # @rbs return: String
57
+ def self.build_rsa_encrypt_password_payload: (String password, String public_key, String scramble) -> String
58
+
59
+ # @rbs payload: String
60
+ # @rbs with_database: bool
61
+ # @rbs return: void
62
+ def self.debug_caching_sha2_password_payload: (String payload, bool with_database) -> void
63
+
64
+ # @rbs connection: MysqlReplicator::Connection
65
+ # @rbs password: String
66
+ # @rbs handshake_info: MysqlReplicator::Connections::Handshake::handshake
67
+ # @return: void
68
+ def self.mysql_native_password_auth: (MysqlReplicator::Connection connection, String password, MysqlReplicator::Connections::Handshake::handshake handshake_info) -> untyped
69
+
70
+ # @rbs password: String
71
+ # @rbs salt: String
72
+ # @rbs return: String
73
+ def self.build_mysql_native_password_payload: (String password, String salt) -> String
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,21 @@
1
+ # Generated from lib/mysql_replicator/connections/handshake.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ module Connections
5
+ class Handshake
6
+ type handshake = { protocol_version: Integer, server_version: String, connection_id: Integer, capability_flags: Integer | nil, charset: Integer | nil, status_flags: Integer | nil, auth_plugin_name: String, auth_plugin_data: String }
7
+
8
+ # @rbs connection: MysqlReplicator::Connection
9
+ # @rbs return: handshake
10
+ def self.execute: (MysqlReplicator::Connection connection) -> handshake
11
+
12
+ # @rbs packet: MysqlReplicator::Types::packet
13
+ # @rbs return: handshake
14
+ def self.parse_handshake_response_packet: (MysqlReplicator::Types::packet packet) -> handshake
15
+
16
+ # @rbs handshake_info: handshake
17
+ # @rbs return: void
18
+ def self.debug_handshake_info: (handshake handshake_info) -> void
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,62 @@
1
+ # Generated from lib/mysql_replicator/connections/query.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ module Connections
5
+ class Query
6
+ type columnData = { catalog: String, schema: String, table: String, org_table: String, name: String, org_name: String, charset: Integer, column_length: Integer, type: String }
7
+
8
+ type queryResultOk = { affected_rows: Integer | nil, insert_id: Integer | nil, status_flags: Integer | nil, warnings: Integer | nil, info_message: String | nil }
9
+
10
+ type queryResultError = { error_code: Integer, sql_state_marker: String, sql_state: String | nil, error_message: String | nil }
11
+
12
+ type queryResultSet = { columns: Array[columnData], rows: Array[Hash[Symbol, String | nil]], row_count: Integer }
13
+
14
+ type queryResult = queryResultOk | queryResultError | queryResultSet
15
+
16
+ # @rbs connection: MysqlReplicator::Connection
17
+ # @rbs sql: String
18
+ # @rbs return: queryResult
19
+ def self.execute: (MysqlReplicator::Connection connection, String sql) -> queryResult
20
+
21
+ # @rbs payload: String
22
+ # @rbs return: queryResultOk
23
+ def self.parse_ok: (String payload) -> queryResultOk
24
+
25
+ # @rbs payload: String
26
+ # @rbs return: queryResultError
27
+ def self.parse_error: (String payload) -> queryResultError
28
+
29
+ # @rbs connection: MysqlReplicator::Connection
30
+ # @rbs payload: String
31
+ # @rbs return: queryResultSet
32
+ def self.parse_result_set: (MysqlReplicator::Connection connection, String payload) -> queryResultSet
33
+
34
+ # @rbs payload: String
35
+ # @rbs return: columnData
36
+ def self.parse_column_definition: (String payload) -> columnData
37
+
38
+ # @rbs payload: String
39
+ # @rbs columns: Array[columnData]
40
+ # @rbs return: Hash[Symbol, String | nil]
41
+ def self.parse_row_data: (String payload, Array[columnData] columns) -> Hash[Symbol, String | nil]
42
+
43
+ # @rbs payload: String
44
+ # @rbs offset: Integer
45
+ # @rbs return: { value: Integer | nil, bytes_read: Integer }
46
+ def self.length_encoded_integer: (String payload, Integer offset) -> { value: Integer | nil, bytes_read: Integer }
47
+
48
+ # @rbs value: Integer | nil
49
+ # @rbs return: Integer
50
+ def self.length_encoded_integer_size: (Integer | nil value) -> Integer
51
+
52
+ # @rbs payload: String
53
+ # @rbs offset: Integer
54
+ # @rbs return { value: String, bytes_read: Integer }
55
+ def self.length_encoded_string: (String payload, Integer offset) -> { value: String, bytes_read: Integer }
56
+
57
+ # @rbs type: Integer | Float | String | nil
58
+ # @rbs return: String
59
+ def self.type_to_string: (Integer | Float | String | nil type) -> String
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,6 @@
1
+ # Generated from lib/mysql_replicator/error.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ class Error < StandardError
5
+ end
6
+ end
@@ -0,0 +1,26 @@
1
+ # Generated from lib/mysql_replicator/logger.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ class Logger
5
+ self.@logger: ::Logger
6
+
7
+ # @rbs logger: ::Logger
8
+ def self.logger=: (::Logger logger) -> untyped
9
+
10
+ # @rbs message: String
11
+ # @rbs return: void
12
+ def self.debug: (String message) -> void
13
+
14
+ # @rbs message: String
15
+ # @rbs return: void
16
+ def self.info: (String message) -> void
17
+
18
+ # @rbs message: String
19
+ # @rbs return: void
20
+ def self.warn: (String message) -> void
21
+
22
+ # @rbs message: String
23
+ # @return: void
24
+ def self.error: (String message) -> untyped
25
+ end
26
+ end
@@ -0,0 +1,75 @@
1
+ # Generated from lib/mysql_replicator/string_io_util.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ class StringIOUtil
5
+ # @rbs io: StringIO
6
+ # @rbs return: String
7
+ def self.read_str: (StringIO io, untyped length) -> String
8
+
9
+ # @rbs io: StringIO
10
+ # @rbs return: Integer
11
+ def self.read_packed_integer: (StringIO io) -> Integer
12
+
13
+ # @rbs io: StringIO
14
+ # @rbs return: Integer
15
+ def self.read_int8: (StringIO io) -> Integer
16
+
17
+ # @rbs io: StringIO
18
+ # @rbs return: Integer
19
+ def self.read_uint8: (StringIO io) -> Integer
20
+
21
+ # @rbs io: StringIO
22
+ # @rbs return: Integer
23
+ def self.read_int16: (StringIO io) -> Integer
24
+
25
+ # @rbs io: StringIO
26
+ # @rbs return: Integer
27
+ def self.read_uint16: (StringIO io) -> Integer
28
+
29
+ # @rbs io: StringIO
30
+ # @rbs return: Integer
31
+ def self.read_int24: (StringIO io) -> Integer
32
+
33
+ # @rbs io: StringIO
34
+ # @rbs return: Integer
35
+ def self.read_uint24: (StringIO io) -> Integer
36
+
37
+ # @rbs io: StringIO
38
+ # @rbs return: Integer
39
+ def self.read_int32: (StringIO io) -> Integer
40
+
41
+ # @rbs io: StringIO
42
+ # @rbs return: Integer
43
+ def self.read_uint32: (StringIO io) -> Integer
44
+
45
+ # @rbs io: StringIO
46
+ # @rbs return: Integer
47
+ def self.read_uint32_big_endian: (StringIO io) -> Integer
48
+
49
+ # @rbs io: StringIO
50
+ # @rbs return: Integer
51
+ def self.read_int48: (StringIO io) -> Integer
52
+
53
+ # @rbs io: StringIO
54
+ # @rbs return: Integer
55
+ def self.read_uint48: (StringIO io) -> Integer
56
+
57
+ # @rbs io: StringIO
58
+ # @rbs return: Integer
59
+ def self.read_int64: (StringIO io) -> Integer
60
+
61
+ # @rbs io: StringIO
62
+ # @rbs return: Integer
63
+ def self.read_uint64: (StringIO io) -> Integer
64
+
65
+ # @rbs io: StringIO
66
+ # @rbs return: Float
67
+ def self.read_float32: (StringIO io) -> Float
68
+
69
+ # @rbs io: StringIO
70
+ # @rbs return: Float
71
+ def self.read_double64: (StringIO io) -> Float
72
+
73
+ def self.read_array_from_int8: (untyped io, untyped length) -> untyped
74
+ end
75
+ end
@@ -0,0 +1,45 @@
1
+ # Generated from lib/mysql_replicator/string_util.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ class StringUtil
5
+ # @rbs payload: String | nil
6
+ # @rbs return: String
7
+ def self.read_str: (String | nil payload) -> String
8
+
9
+ # @rbs payload: String | nil
10
+ # @rbs return: Integer
11
+ def self.read_uint8: (String | nil payload) -> Integer
12
+
13
+ # @rbs payload: String | nil
14
+ # @rbs return: Integer
15
+ def self.read_uint16: (String | nil payload) -> Integer
16
+
17
+ # @rbs payload: String | nil
18
+ # @rbs return: Integer
19
+ def self.read_int16: (String | nil payload) -> Integer
20
+
21
+ # @rbs payload: String | nil
22
+ # @rbs return: Integer
23
+ def self.read_uint32: (String | nil payload) -> Integer
24
+
25
+ # @rbs payload: String | nil
26
+ # @rbs return: Integer
27
+ def self.read_int32: (String | nil payload) -> Integer
28
+
29
+ # @rbs payload: String | nil
30
+ # @rbs return: Integer
31
+ def self.read_uint64: (String | nil payload) -> Integer
32
+
33
+ # @rbs paylaod: String | nil
34
+ # @rbs return: Integer
35
+ def self.read_int64: (untyped payload) -> Integer
36
+
37
+ # @rbs paylaod: String | nil
38
+ # @rbs return: Float
39
+ def self.read_double64: (untyped payload) -> Float
40
+
41
+ # @rbs payload: String | nil
42
+ # @rbs return: Array[Integer]
43
+ def self.read_array_from_int8: (String | nil payload) -> Array[Integer]
44
+ end
45
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/mysql_replicator/types.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ module Types
5
+ type packet = { length: Integer, sequence_id: Integer, payload: String }
6
+
7
+ type handshake = { protocol_version: String, server_version: String | nil, connection_id: Integer, capability_flags: Integer, charset: String, status_flags: Integer, auth_plugin_name: String | nil, auth_plugin_data: String }
8
+
9
+ type queryResultOk = { affected_rows: Integer | nil, insert_id: Integer | nil, status_flags: Integer | nil, warnings: Integer | nil, info_message: String | nil }
10
+
11
+ type queryResultError = { error_code: Integer, sql_state_marker: String, sql_state: String | nil, error_message: String | nil }
12
+
13
+ type queryResultSet = { columns: Array[{ catalog: String, schema: String, table: String, org_table: String, name: String, charset: String, column_length: Integer, type: String }], rows: Array[Hash[Symbol, String]], row_count: Integer }
14
+
15
+ type queryResult = queryResultOk | queryResultError | queryResultSet
16
+
17
+ type binlogEvent = { timestamp: String, event_type: String, server_id: Integer, length: Integer, next_position: Integer, flags: Integer, execution: Hash[Symbol, untyped] }
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ # Generated from lib/mysql_replicator/version.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ VERSION: String
5
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/mysql_replicator.rb with RBS::Inline
2
+
3
+ module MysqlReplicator
4
+ # @rbs host: String
5
+ # @rbs port: Integer
6
+ # @rbs user: String
7
+ # @rbs password: String
8
+ # @rbs database: String
9
+ # @rbs &block: { (MysqlReplicator::Binlogs::EventParser::binlogEvent) -> untyped | nil }?
10
+ # @rbs return: void
11
+ def self.run: (?host: String, ?port: Integer, ?user: String, ?password: String, ?database: String) ?{ (?) -> untyped } -> void
12
+
13
+ # @rbs custom_logger: ::Logger
14
+ # @rbs return: void
15
+ def self.logger=: (::Logger custom_logger) -> void
16
+ end
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mysql_replicator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - yo_waka
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bigdecimal
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '3.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: logger
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ description: The MySQL Binlog event handler using MySQL Replication Protocol
41
+ email:
42
+ - y.wakahara@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - ".rspec"
48
+ - ".rubocop.yml"
49
+ - CHANGELOG.md
50
+ - CODE_OF_CONDUCT.md
51
+ - LICENSE.txt
52
+ - README.md
53
+ - Rakefile
54
+ - Steepfile
55
+ - docker-compose.yml
56
+ - lib/mysql_replicator.rb
57
+ - lib/mysql_replicator/binlog_client.rb
58
+ - lib/mysql_replicator/binlogs/column_parser.rb
59
+ - lib/mysql_replicator/binlogs/constants.rb
60
+ - lib/mysql_replicator/binlogs/event_parser.rb
61
+ - lib/mysql_replicator/binlogs/format_description_event_parser.rb
62
+ - lib/mysql_replicator/binlogs/json_parser.rb
63
+ - lib/mysql_replicator/binlogs/query_event_parser.rb
64
+ - lib/mysql_replicator/binlogs/rotate_event_parser.rb
65
+ - lib/mysql_replicator/binlogs/rows_event_parser.rb
66
+ - lib/mysql_replicator/binlogs/table_map_event_parser.rb
67
+ - lib/mysql_replicator/binlogs/xid_event_parser.rb
68
+ - lib/mysql_replicator/connection.rb
69
+ - lib/mysql_replicator/connections/auth.rb
70
+ - lib/mysql_replicator/connections/handshake.rb
71
+ - lib/mysql_replicator/connections/query.rb
72
+ - lib/mysql_replicator/error.rb
73
+ - lib/mysql_replicator/logger.rb
74
+ - lib/mysql_replicator/string_io_util.rb
75
+ - lib/mysql_replicator/string_util.rb
76
+ - lib/mysql_replicator/version.rb
77
+ - sig/generated/mysql_replicator.rbs
78
+ - sig/generated/mysql_replicator/binlog_client.rbs
79
+ - sig/generated/mysql_replicator/binlogs/column_parser.rbs
80
+ - sig/generated/mysql_replicator/binlogs/constants.rbs
81
+ - sig/generated/mysql_replicator/binlogs/event_parser.rbs
82
+ - sig/generated/mysql_replicator/binlogs/format_description_event_parser.rbs
83
+ - sig/generated/mysql_replicator/binlogs/json_parser.rbs
84
+ - sig/generated/mysql_replicator/binlogs/query_event_parser.rbs
85
+ - sig/generated/mysql_replicator/binlogs/rotate_event_parser.rbs
86
+ - sig/generated/mysql_replicator/binlogs/rows_event_parser.rbs
87
+ - sig/generated/mysql_replicator/binlogs/table_map_event_parser.rbs
88
+ - sig/generated/mysql_replicator/binlogs/xid_event_parser.rbs
89
+ - sig/generated/mysql_replicator/connection.rbs
90
+ - sig/generated/mysql_replicator/connections/auth.rbs
91
+ - sig/generated/mysql_replicator/connections/handshake.rbs
92
+ - sig/generated/mysql_replicator/connections/query.rbs
93
+ - sig/generated/mysql_replicator/error.rbs
94
+ - sig/generated/mysql_replicator/logger.rbs
95
+ - sig/generated/mysql_replicator/string_io_util.rbs
96
+ - sig/generated/mysql_replicator/string_util.rbs
97
+ - sig/generated/mysql_replicator/types.rbs
98
+ - sig/generated/mysql_replicator/version.rbs
99
+ homepage: https://github.com/waka/mysql_replicator
100
+ licenses:
101
+ - MIT
102
+ metadata:
103
+ rubygems_mfa_required: 'true'
104
+ homepage_uri: https://github.com/waka/mysql_replicator
105
+ source_code_uri: https://github.com/waka/mysql_replicator
106
+ changelog_uri: https://github.com/waka/mysql_replicator/blob/main/CHANGELOG.md
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 3.1.0
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubygems_version: 3.6.8
122
+ specification_version: 4
123
+ summary: The MySQL Binlog event handler using MySQL Replication Protocol
124
+ test_files: []