deukpack 1.0.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.
- package/LICENSE +201 -0
- package/NOTICE +6 -0
- package/README.ko.md +138 -0
- package/README.md +182 -0
- package/RELEASING.md +71 -0
- package/bin/deukpack.js +9 -0
- package/dist/ast/DeukPackASTBuilder.d.ts +153 -0
- package/dist/ast/DeukPackASTBuilder.d.ts.map +1 -0
- package/dist/ast/DeukPackASTBuilder.js +931 -0
- package/dist/ast/DeukPackASTBuilder.js.map +1 -0
- package/dist/codegen/CSharpGenerator.d.ts +136 -0
- package/dist/codegen/CSharpGenerator.d.ts.map +1 -0
- package/dist/codegen/CSharpGenerator.js +2303 -0
- package/dist/codegen/CSharpGenerator.js.map +1 -0
- package/dist/codegen/CodeGenerator.d.ts +11 -0
- package/dist/codegen/CodeGenerator.d.ts.map +1 -0
- package/dist/codegen/CodeGenerator.js +11 -0
- package/dist/codegen/CodeGenerator.js.map +1 -0
- package/dist/codegen/CppGenerator.d.ts +23 -0
- package/dist/codegen/CppGenerator.d.ts.map +1 -0
- package/dist/codegen/CppGenerator.js +215 -0
- package/dist/codegen/CppGenerator.js.map +1 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.d.ts +29 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.d.ts.map +1 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.js +486 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.js.map +1 -0
- package/dist/core/DeukPackEngine.d.ts +69 -0
- package/dist/core/DeukPackEngine.d.ts.map +1 -0
- package/dist/core/DeukPackEngine.js +379 -0
- package/dist/core/DeukPackEngine.js.map +1 -0
- package/dist/core/DeukPackGenerator.d.ts +9 -0
- package/dist/core/DeukPackGenerator.d.ts.map +1 -0
- package/dist/core/DeukPackGenerator.js +15 -0
- package/dist/core/DeukPackGenerator.js.map +1 -0
- package/dist/core/DeukParser.d.ts +12 -0
- package/dist/core/DeukParser.d.ts.map +1 -0
- package/dist/core/DeukParser.js +27 -0
- package/dist/core/DeukParser.js.map +1 -0
- package/dist/core/IdlParser.d.ts +27 -0
- package/dist/core/IdlParser.d.ts.map +1 -0
- package/dist/core/IdlParser.js +157 -0
- package/dist/core/IdlParser.js.map +1 -0
- package/dist/core/ProtoParser.d.ts +12 -0
- package/dist/core/ProtoParser.d.ts.map +1 -0
- package/dist/core/ProtoParser.js +27 -0
- package/dist/core/ProtoParser.js.map +1 -0
- package/dist/csharp/DpExcelProtocol.cs +3005 -0
- package/dist/csharp/DpProtocolLibrary.cs +13 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/DeukLexer.d.ts +31 -0
- package/dist/lexer/DeukLexer.d.ts.map +1 -0
- package/dist/lexer/DeukLexer.js +292 -0
- package/dist/lexer/DeukLexer.js.map +1 -0
- package/dist/lexer/IdlLexer.d.ts +33 -0
- package/dist/lexer/IdlLexer.d.ts.map +1 -0
- package/dist/lexer/IdlLexer.js +286 -0
- package/dist/lexer/IdlLexer.js.map +1 -0
- package/dist/native/NativeDeukPackEngine.d.ts +30 -0
- package/dist/native/NativeDeukPackEngine.d.ts.map +1 -0
- package/dist/native/NativeDeukPackEngine.js +99 -0
- package/dist/native/NativeDeukPackEngine.js.map +1 -0
- package/dist/proto/ProtoASTBuilder.d.ts +29 -0
- package/dist/proto/ProtoASTBuilder.d.ts.map +1 -0
- package/dist/proto/ProtoASTBuilder.js +239 -0
- package/dist/proto/ProtoASTBuilder.js.map +1 -0
- package/dist/proto/ProtoLexer.d.ts +29 -0
- package/dist/proto/ProtoLexer.d.ts.map +1 -0
- package/dist/proto/ProtoLexer.js +264 -0
- package/dist/proto/ProtoLexer.js.map +1 -0
- package/dist/proto/ProtoTypes.d.ts +40 -0
- package/dist/proto/ProtoTypes.d.ts.map +1 -0
- package/dist/proto/ProtoTypes.js +37 -0
- package/dist/proto/ProtoTypes.js.map +1 -0
- package/dist/protocols/BinaryProtocol.d.ts +7 -0
- package/dist/protocols/BinaryProtocol.d.ts.map +1 -0
- package/dist/protocols/BinaryProtocol.js +11 -0
- package/dist/protocols/BinaryProtocol.js.map +1 -0
- package/dist/protocols/BinaryWriter.d.ts +22 -0
- package/dist/protocols/BinaryWriter.d.ts.map +1 -0
- package/dist/protocols/BinaryWriter.js +104 -0
- package/dist/protocols/BinaryWriter.js.map +1 -0
- package/dist/protocols/CompactProtocol.d.ts +7 -0
- package/dist/protocols/CompactProtocol.d.ts.map +1 -0
- package/dist/protocols/CompactProtocol.js +11 -0
- package/dist/protocols/CompactProtocol.js.map +1 -0
- package/dist/protocols/ExcelProtocol.d.ts +98 -0
- package/dist/protocols/ExcelProtocol.d.ts.map +1 -0
- package/dist/protocols/ExcelProtocol.js +639 -0
- package/dist/protocols/ExcelProtocol.js.map +1 -0
- package/dist/protocols/JsonProtocol.d.ts +68 -0
- package/dist/protocols/JsonProtocol.d.ts.map +1 -0
- package/dist/protocols/JsonProtocol.js +422 -0
- package/dist/protocols/JsonProtocol.js.map +1 -0
- package/dist/protocols/WireProtocol.d.ts +348 -0
- package/dist/protocols/WireProtocol.d.ts.map +1 -0
- package/dist/protocols/WireProtocol.js +912 -0
- package/dist/protocols/WireProtocol.js.map +1 -0
- package/dist/serialization/WireDeserializer.d.ts +8 -0
- package/dist/serialization/WireDeserializer.d.ts.map +1 -0
- package/dist/serialization/WireDeserializer.js +13 -0
- package/dist/serialization/WireDeserializer.js.map +1 -0
- package/dist/serialization/WireSerializer.d.ts +20 -0
- package/dist/serialization/WireSerializer.d.ts.map +1 -0
- package/dist/serialization/WireSerializer.js +100 -0
- package/dist/serialization/WireSerializer.js.map +1 -0
- package/dist/types/DeukPackTypes.d.ts +291 -0
- package/dist/types/DeukPackTypes.d.ts.map +1 -0
- package/dist/types/DeukPackTypes.js +76 -0
- package/dist/types/DeukPackTypes.js.map +1 -0
- package/dist/utils/EndianUtils.d.ts +11 -0
- package/dist/utils/EndianUtils.d.ts.map +1 -0
- package/dist/utils/EndianUtils.js +32 -0
- package/dist/utils/EndianUtils.js.map +1 -0
- package/dist/utils/PerformanceMonitor.d.ts +26 -0
- package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
- package/dist/utils/PerformanceMonitor.js +57 -0
- package/dist/utils/PerformanceMonitor.js.map +1 -0
- package/package.json +77 -0
- package/scripts/build_deukpack.js +669 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeukPack Wire Protocol
|
|
3
|
+
* DpProtocol interface and implementations.
|
|
4
|
+
* - DpBinaryProtocol, DpCompactProtocol: Apache Thrift wire-compatible (binary/compact).
|
|
5
|
+
* - DpPackProtocol: DeukPack-native (magic 0x44 0x50 0x01); detectable via detectWireProtocol().
|
|
6
|
+
* - 엔벨로프(writeEnvelope/readEnvelope): 팩 시 프로토콜 타입 저장 → 언팩 시 타입으로 디코더 선택. 기본(성능·메모리 권장): pack.
|
|
7
|
+
* - Cross-platform serialization with endian support.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum DpWireType {
|
|
10
|
+
Stop = 0,
|
|
11
|
+
Void = 1,
|
|
12
|
+
Bool = 2,
|
|
13
|
+
Byte = 3,
|
|
14
|
+
Double = 4,
|
|
15
|
+
I16 = 6,
|
|
16
|
+
I32 = 8,
|
|
17
|
+
I64 = 10,
|
|
18
|
+
String = 11,
|
|
19
|
+
Struct = 12,
|
|
20
|
+
Map = 13,
|
|
21
|
+
Set = 14,
|
|
22
|
+
List = 15
|
|
23
|
+
}
|
|
24
|
+
export declare enum DpMessageType {
|
|
25
|
+
Call = 1,
|
|
26
|
+
Reply = 2,
|
|
27
|
+
Exception = 3,
|
|
28
|
+
Oneway = 4
|
|
29
|
+
}
|
|
30
|
+
export interface DpStruct {
|
|
31
|
+
name: string;
|
|
32
|
+
}
|
|
33
|
+
export interface DpField {
|
|
34
|
+
name: string;
|
|
35
|
+
type: DpWireType;
|
|
36
|
+
id: number;
|
|
37
|
+
}
|
|
38
|
+
export interface DpList {
|
|
39
|
+
elementType: DpWireType;
|
|
40
|
+
count: number;
|
|
41
|
+
}
|
|
42
|
+
export interface DpSet {
|
|
43
|
+
elementType: DpWireType;
|
|
44
|
+
count: number;
|
|
45
|
+
}
|
|
46
|
+
export interface DpMap {
|
|
47
|
+
keyType: DpWireType;
|
|
48
|
+
valueType: DpWireType;
|
|
49
|
+
count: number;
|
|
50
|
+
}
|
|
51
|
+
export interface DpProtocol {
|
|
52
|
+
writeStructBegin(struct: DpStruct): void;
|
|
53
|
+
writeStructEnd(): void;
|
|
54
|
+
writeFieldBegin(field: DpField): void;
|
|
55
|
+
writeFieldEnd(): void;
|
|
56
|
+
writeFieldStop(): void;
|
|
57
|
+
writeBool(value: boolean): void;
|
|
58
|
+
writeByte(value: number): void;
|
|
59
|
+
writeI16(value: number): void;
|
|
60
|
+
writeI32(value: number): void;
|
|
61
|
+
writeI64(value: bigint): void;
|
|
62
|
+
writeDouble(value: number): void;
|
|
63
|
+
writeString(value: string): void;
|
|
64
|
+
writeBinary(value: Uint8Array): void;
|
|
65
|
+
writeListBegin(list: DpList): void;
|
|
66
|
+
writeListEnd(): void;
|
|
67
|
+
writeSetBegin(set: DpSet): void;
|
|
68
|
+
writeSetEnd(): void;
|
|
69
|
+
writeMapBegin(map: DpMap): void;
|
|
70
|
+
writeMapEnd(): void;
|
|
71
|
+
readStructBegin(): DpStruct;
|
|
72
|
+
readStructEnd(): void;
|
|
73
|
+
readFieldBegin(): DpField;
|
|
74
|
+
readFieldEnd(): void;
|
|
75
|
+
readBool(): boolean;
|
|
76
|
+
readByte(): number;
|
|
77
|
+
readI16(): number;
|
|
78
|
+
readI32(): number;
|
|
79
|
+
readI64(): bigint;
|
|
80
|
+
readDouble(): number;
|
|
81
|
+
readString(): string;
|
|
82
|
+
readBinary(): Uint8Array;
|
|
83
|
+
readListBegin(): DpList;
|
|
84
|
+
readListEnd(): void;
|
|
85
|
+
readSetBegin(): DpSet;
|
|
86
|
+
readSetEnd(): void;
|
|
87
|
+
readMapBegin(): DpMap;
|
|
88
|
+
readMapEnd(): void;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Thrift-compatible binary protocol (fixed-width fields, type+id per field).
|
|
92
|
+
* Endianness configurable (default little-endian); Apache Thrift binary is big-endian.
|
|
93
|
+
*/
|
|
94
|
+
export declare class DpBinaryProtocol implements DpProtocol {
|
|
95
|
+
private buffer;
|
|
96
|
+
private view;
|
|
97
|
+
private offset;
|
|
98
|
+
private littleEndian;
|
|
99
|
+
constructor(buffer: ArrayBuffer, littleEndian?: boolean);
|
|
100
|
+
writeStructBegin(_struct: DpStruct): void;
|
|
101
|
+
writeStructEnd(): void;
|
|
102
|
+
writeFieldBegin(field: DpField): void;
|
|
103
|
+
writeFieldEnd(): void;
|
|
104
|
+
writeFieldStop(): void;
|
|
105
|
+
writeBool(value: boolean): void;
|
|
106
|
+
writeByte(value: number): void;
|
|
107
|
+
writeI16(value: number): void;
|
|
108
|
+
writeI32(value: number): void;
|
|
109
|
+
writeI64(value: bigint): void;
|
|
110
|
+
writeDouble(value: number): void;
|
|
111
|
+
writeString(value: string): void;
|
|
112
|
+
writeBinary(value: Uint8Array): void;
|
|
113
|
+
writeListBegin(list: DpList): void;
|
|
114
|
+
writeListEnd(): void;
|
|
115
|
+
writeSetBegin(set: DpSet): void;
|
|
116
|
+
writeSetEnd(): void;
|
|
117
|
+
writeMapBegin(map: DpMap): void;
|
|
118
|
+
writeMapEnd(): void;
|
|
119
|
+
readStructBegin(): DpStruct;
|
|
120
|
+
readStructEnd(): void;
|
|
121
|
+
readFieldBegin(): DpField;
|
|
122
|
+
readFieldEnd(): void;
|
|
123
|
+
readBool(): boolean;
|
|
124
|
+
readByte(): number;
|
|
125
|
+
readI16(): number;
|
|
126
|
+
readI32(): number;
|
|
127
|
+
readI64(): bigint;
|
|
128
|
+
readDouble(): number;
|
|
129
|
+
readString(): string;
|
|
130
|
+
readBinary(): Uint8Array;
|
|
131
|
+
readListBegin(): DpList;
|
|
132
|
+
readListEnd(): void;
|
|
133
|
+
readSetBegin(): DpSet;
|
|
134
|
+
readSetEnd(): void;
|
|
135
|
+
readMapBegin(): DpMap;
|
|
136
|
+
readMapEnd(): void;
|
|
137
|
+
getBuffer(): ArrayBuffer;
|
|
138
|
+
getOffset(): number;
|
|
139
|
+
setOffset(offset: number): void;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 제로카피 프로토콜 (Zero-Copy Protocol). 기본 선택사항 아님 — 사용자가 writeEnvelope(..., 'zerocopy') 또는 엔벨로프 id 3으로 명시할 때만 사용.
|
|
143
|
+
* Wire 포맷은 Thrift Binary와 동일. read 시 버퍼 복사 없이 뷰(Uint8Array) 반환.
|
|
144
|
+
* 주의: 반환된 뷰 사용 중에는 원본 버퍼를 수정하지 말 것. 버퍼 수명이 뷰보다 길어야 함.
|
|
145
|
+
*/
|
|
146
|
+
export declare class DpZeroCopyProtocol implements DpProtocol {
|
|
147
|
+
private buffer;
|
|
148
|
+
private view;
|
|
149
|
+
private offset;
|
|
150
|
+
private littleEndian;
|
|
151
|
+
constructor(buffer: ArrayBuffer, littleEndian?: boolean);
|
|
152
|
+
writeStructBegin(_struct: DpStruct): void;
|
|
153
|
+
writeStructEnd(): void;
|
|
154
|
+
writeFieldBegin(field: DpField): void;
|
|
155
|
+
writeFieldEnd(): void;
|
|
156
|
+
writeFieldStop(): void;
|
|
157
|
+
writeBool(value: boolean): void;
|
|
158
|
+
writeByte(value: number): void;
|
|
159
|
+
writeI16(value: number): void;
|
|
160
|
+
writeI32(value: number): void;
|
|
161
|
+
writeI64(value: bigint): void;
|
|
162
|
+
writeDouble(value: number): void;
|
|
163
|
+
writeString(value: string): void;
|
|
164
|
+
writeBinary(value: Uint8Array): void;
|
|
165
|
+
writeListBegin(list: DpList): void;
|
|
166
|
+
writeListEnd(): void;
|
|
167
|
+
writeSetBegin(set: DpSet): void;
|
|
168
|
+
writeSetEnd(): void;
|
|
169
|
+
writeMapBegin(map: DpMap): void;
|
|
170
|
+
writeMapEnd(): void;
|
|
171
|
+
readStructBegin(): DpStruct;
|
|
172
|
+
readStructEnd(): void;
|
|
173
|
+
readFieldBegin(): DpField;
|
|
174
|
+
readFieldEnd(): void;
|
|
175
|
+
readBool(): boolean;
|
|
176
|
+
readByte(): number;
|
|
177
|
+
readI16(): number;
|
|
178
|
+
readI32(): number;
|
|
179
|
+
readI64(): bigint;
|
|
180
|
+
readDouble(): number;
|
|
181
|
+
readString(): string;
|
|
182
|
+
/** 제로카피: 원본 버퍼에 대한 뷰 반환. 버퍼 수명·불변성 책임은 호출자. */
|
|
183
|
+
readBinary(): Uint8Array;
|
|
184
|
+
readListBegin(): DpList;
|
|
185
|
+
readListEnd(): void;
|
|
186
|
+
readSetBegin(): DpSet;
|
|
187
|
+
readSetEnd(): void;
|
|
188
|
+
readMapBegin(): DpMap;
|
|
189
|
+
readMapEnd(): void;
|
|
190
|
+
getBuffer(): ArrayBuffer;
|
|
191
|
+
getOffset(): number;
|
|
192
|
+
setOffset(offset: number): void;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Thrift-compatible compact protocol (varint encoding, smaller payload).
|
|
196
|
+
* Same wire format family as Apache Thrift compact.
|
|
197
|
+
*/
|
|
198
|
+
export declare class DpCompactProtocol implements DpProtocol {
|
|
199
|
+
private buffer;
|
|
200
|
+
private view;
|
|
201
|
+
private offset;
|
|
202
|
+
private littleEndian;
|
|
203
|
+
constructor(buffer: ArrayBuffer, littleEndian?: boolean);
|
|
204
|
+
writeStructBegin(_struct: DpStruct): void;
|
|
205
|
+
writeStructEnd(): void;
|
|
206
|
+
writeFieldBegin(field: DpField): void;
|
|
207
|
+
writeFieldEnd(): void;
|
|
208
|
+
writeFieldStop(): void;
|
|
209
|
+
writeBool(value: boolean): void;
|
|
210
|
+
writeByte(value: number): void;
|
|
211
|
+
writeI16(value: number): void;
|
|
212
|
+
writeI32(value: number): void;
|
|
213
|
+
writeI64(value: bigint): void;
|
|
214
|
+
writeDouble(value: number): void;
|
|
215
|
+
writeString(value: string): void;
|
|
216
|
+
writeBinary(value: Uint8Array): void;
|
|
217
|
+
writeListBegin(list: DpList): void;
|
|
218
|
+
writeListEnd(): void;
|
|
219
|
+
writeSetBegin(set: DpSet): void;
|
|
220
|
+
writeSetEnd(): void;
|
|
221
|
+
writeMapBegin(map: DpMap): void;
|
|
222
|
+
writeMapEnd(): void;
|
|
223
|
+
readStructBegin(): DpStruct;
|
|
224
|
+
readStructEnd(): void;
|
|
225
|
+
readFieldBegin(): DpField;
|
|
226
|
+
readFieldEnd(): void;
|
|
227
|
+
readBool(): boolean;
|
|
228
|
+
readByte(): number;
|
|
229
|
+
readI16(): number;
|
|
230
|
+
readI32(): number;
|
|
231
|
+
readI64(): bigint;
|
|
232
|
+
readDouble(): number;
|
|
233
|
+
readString(): string;
|
|
234
|
+
readBinary(): Uint8Array;
|
|
235
|
+
readListBegin(): DpList;
|
|
236
|
+
readListEnd(): void;
|
|
237
|
+
readSetBegin(): DpSet;
|
|
238
|
+
readSetEnd(): void;
|
|
239
|
+
readMapBegin(): DpMap;
|
|
240
|
+
readMapEnd(): void;
|
|
241
|
+
private writeVarint;
|
|
242
|
+
private readVarint;
|
|
243
|
+
private writeVarint64;
|
|
244
|
+
private readVarint64;
|
|
245
|
+
getBuffer(): ArrayBuffer;
|
|
246
|
+
getOffset(): number;
|
|
247
|
+
setOffset(offset: number): void;
|
|
248
|
+
}
|
|
249
|
+
/** Magic header for DpPack wire (3 bytes): 'DP' + version 1. Enables protocol detection from stored bytes. */
|
|
250
|
+
export declare const DP_PACK_MAGIC: Uint8Array<ArrayBuffer>;
|
|
251
|
+
/** Envelope: [0x44, 0x50, version, protocol_id]. Pack/Unpack 시 저장된 프로토콜 타입으로 올바른 디코더 선택. */
|
|
252
|
+
export declare const DP_WIRE_ENVELOPE_SIZE = 4;
|
|
253
|
+
export declare const DP_WIRE_ENVELOPE_MAGIC0 = 68;
|
|
254
|
+
export declare const DP_WIRE_ENVELOPE_MAGIC1 = 80;
|
|
255
|
+
/** Protocol id in envelope: 성능·메모리 기본은 pack(2). 제로카피(3)는 사용자 선택 전용(기본 아님), FlatBuffers 유사·버퍼 뷰 반환. */
|
|
256
|
+
export declare const DP_WIRE_PROTOCOL_BINARY = 0;
|
|
257
|
+
export declare const DP_WIRE_PROTOCOL_COMPACT = 1;
|
|
258
|
+
export declare const DP_WIRE_PROTOCOL_PACK = 2;
|
|
259
|
+
export declare const DP_WIRE_PROTOCOL_ZEROCOPY = 3;
|
|
260
|
+
export type DpWireProtocolName = 'binary' | 'compact' | 'pack' | 'zerocopy';
|
|
261
|
+
/**
|
|
262
|
+
* Pack 시 버퍼 앞에 프로토콜 타입을 씀. 호출 후 동일 버퍼로 프로토콜 생성하고 setOffset(DP_WIRE_ENVELOPE_SIZE) 후 Write.
|
|
263
|
+
* @param buffer 최소 4바이트 이상 확보된 버퍼
|
|
264
|
+
* @param protocol 저장할 프로토콜 (기본·권장: 'pack' — 성능·메모리 양호)
|
|
265
|
+
* @param version 엔벨로프 버전 (기본 1)
|
|
266
|
+
*/
|
|
267
|
+
export declare function writeEnvelope(buffer: ArrayBuffer, protocol: DpWireProtocolName, version?: number): void;
|
|
268
|
+
/**
|
|
269
|
+
* Unpack 시 저장된 프로토콜 타입 반환. 엔벨로프가 있으면 version·protocol 반환; 없으면 null.
|
|
270
|
+
*/
|
|
271
|
+
export declare function readEnvelope(buffer: ArrayBuffer | Uint8Array): {
|
|
272
|
+
version: number;
|
|
273
|
+
protocol: DpWireProtocolName;
|
|
274
|
+
} | null;
|
|
275
|
+
/**
|
|
276
|
+
* DeukPack-native wire protocol (pack).
|
|
277
|
+
* Same encoding as Thrift compact (varint tag + varint values) but with a 3-byte magic header
|
|
278
|
+
* so stored payloads can be identified as DpPack. Not wire-compatible with Apache Thrift.
|
|
279
|
+
*/
|
|
280
|
+
export declare class DpPackProtocol implements DpProtocol {
|
|
281
|
+
private buffer;
|
|
282
|
+
private view;
|
|
283
|
+
private offset;
|
|
284
|
+
private littleEndian;
|
|
285
|
+
constructor(buffer: ArrayBuffer, littleEndian?: boolean);
|
|
286
|
+
private ensureMagicWritten;
|
|
287
|
+
private ensureMagicSkipped;
|
|
288
|
+
writeStructBegin(_struct: DpStruct): void;
|
|
289
|
+
writeStructEnd(): void;
|
|
290
|
+
writeFieldBegin(field: DpField): void;
|
|
291
|
+
writeFieldEnd(): void;
|
|
292
|
+
writeFieldStop(): void;
|
|
293
|
+
writeBool(value: boolean): void;
|
|
294
|
+
writeByte(value: number): void;
|
|
295
|
+
writeI16(value: number): void;
|
|
296
|
+
writeI32(value: number): void;
|
|
297
|
+
writeI64(value: bigint): void;
|
|
298
|
+
writeDouble(value: number): void;
|
|
299
|
+
writeString(value: string): void;
|
|
300
|
+
writeBinary(value: Uint8Array): void;
|
|
301
|
+
writeListBegin(list: DpList): void;
|
|
302
|
+
writeListEnd(): void;
|
|
303
|
+
writeSetBegin(set: DpSet): void;
|
|
304
|
+
writeSetEnd(): void;
|
|
305
|
+
writeMapBegin(map: DpMap): void;
|
|
306
|
+
writeMapEnd(): void;
|
|
307
|
+
readStructBegin(): DpStruct;
|
|
308
|
+
readStructEnd(): void;
|
|
309
|
+
readFieldBegin(): DpField;
|
|
310
|
+
readFieldEnd(): void;
|
|
311
|
+
readBool(): boolean;
|
|
312
|
+
readByte(): number;
|
|
313
|
+
readI16(): number;
|
|
314
|
+
readI32(): number;
|
|
315
|
+
readI64(): bigint;
|
|
316
|
+
readDouble(): number;
|
|
317
|
+
readString(): string;
|
|
318
|
+
readBinary(): Uint8Array;
|
|
319
|
+
readListBegin(): DpList;
|
|
320
|
+
readListEnd(): void;
|
|
321
|
+
readSetBegin(): DpSet;
|
|
322
|
+
readSetEnd(): void;
|
|
323
|
+
readMapBegin(): DpMap;
|
|
324
|
+
readMapEnd(): void;
|
|
325
|
+
private writeVarint;
|
|
326
|
+
private readVarint;
|
|
327
|
+
private writeVarint64;
|
|
328
|
+
private readVarint64;
|
|
329
|
+
getBuffer(): ArrayBuffer;
|
|
330
|
+
getOffset(): number;
|
|
331
|
+
setOffset(offset: number): void;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Unpack 시 저장된 바이트에서 프로토콜 판별.
|
|
335
|
+
* - 엔벨로프(4바이트)가 있으면 그 안의 프로토콜 타입 반환.
|
|
336
|
+
* - pack 매직(3바이트)만 있으면 'pack'.
|
|
337
|
+
* - 매직이 없으면 Thrift 호환 바이너리로 간주하여 'binary' 반환.
|
|
338
|
+
*/
|
|
339
|
+
export declare function detectWireProtocol(buffer: ArrayBuffer | Uint8Array): DpWireProtocolName | null;
|
|
340
|
+
/**
|
|
341
|
+
* Unpack 시 버퍼에서 프로토콜 타입을 읽고, 해당 프로토콜 인스턴스와 바디 시작 오프셋 반환.
|
|
342
|
+
* 엔벨로프 있음 → bodyOffset=4. pack 매직만 있음 → bodyOffset=3. 매직 없음 → Thrift 호환 바이너리, bodyOffset=0.
|
|
343
|
+
*/
|
|
344
|
+
export declare function createProtocolForUnpack(buffer: ArrayBuffer, littleEndian?: boolean): {
|
|
345
|
+
protocol: DpBinaryProtocol | DpCompactProtocol | DpPackProtocol | DpZeroCopyProtocol;
|
|
346
|
+
bodyOffset: number;
|
|
347
|
+
};
|
|
348
|
+
//# sourceMappingURL=WireProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WireProtocol.d.ts","sourceRoot":"","sources":["../../src/protocols/WireProtocol.ts"],"names":[],"mappings":"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"}
|