@yydb/light-db 0.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.
Files changed (150) hide show
  1. package/dist/api/LightDB.d.ts +194 -0
  2. package/dist/api/LightDB.d.ts.map +1 -0
  3. package/dist/api/LightDB.js +299 -0
  4. package/dist/api/LightDB.js.map +1 -0
  5. package/dist/api/Transaction.d.ts +100 -0
  6. package/dist/api/Transaction.d.ts.map +1 -0
  7. package/dist/api/Transaction.js +263 -0
  8. package/dist/api/Transaction.js.map +1 -0
  9. package/dist/api/index.d.ts +24 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +54 -0
  12. package/dist/api/index.js.map +1 -0
  13. package/dist/api/types.d.ts +154 -0
  14. package/dist/api/types.d.ts.map +1 -0
  15. package/dist/api/types.js +7 -0
  16. package/dist/api/types.js.map +1 -0
  17. package/dist/collection/Collection.d.ts +235 -0
  18. package/dist/collection/Collection.d.ts.map +1 -0
  19. package/dist/collection/Collection.js +671 -0
  20. package/dist/collection/Collection.js.map +1 -0
  21. package/dist/collection/QueryBuilder.d.ts +225 -0
  22. package/dist/collection/QueryBuilder.d.ts.map +1 -0
  23. package/dist/collection/QueryBuilder.js +475 -0
  24. package/dist/collection/QueryBuilder.js.map +1 -0
  25. package/dist/collection/QueryParser.d.ts +117 -0
  26. package/dist/collection/QueryParser.d.ts.map +1 -0
  27. package/dist/collection/QueryParser.js +438 -0
  28. package/dist/collection/QueryParser.js.map +1 -0
  29. package/dist/collection/index.d.ts +42 -0
  30. package/dist/collection/index.d.ts.map +1 -0
  31. package/dist/collection/index.js +41 -0
  32. package/dist/collection/index.js.map +1 -0
  33. package/dist/collection/types.d.ts +365 -0
  34. package/dist/collection/types.d.ts.map +1 -0
  35. package/dist/collection/types.js +7 -0
  36. package/dist/collection/types.js.map +1 -0
  37. package/dist/constants/index.d.ts +51 -0
  38. package/dist/constants/index.d.ts.map +1 -0
  39. package/dist/constants/index.js +68 -0
  40. package/dist/constants/index.js.map +1 -0
  41. package/dist/errors/index.d.ts +69 -0
  42. package/dist/errors/index.d.ts.map +1 -0
  43. package/dist/errors/index.js +132 -0
  44. package/dist/errors/index.js.map +1 -0
  45. package/dist/index.d.ts +220 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +729 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/indexes/BPlusTree.d.ts +181 -0
  50. package/dist/indexes/BPlusTree.d.ts.map +1 -0
  51. package/dist/indexes/BPlusTree.js +528 -0
  52. package/dist/indexes/BPlusTree.js.map +1 -0
  53. package/dist/indexes/IndexManager.d.ts +236 -0
  54. package/dist/indexes/IndexManager.d.ts.map +1 -0
  55. package/dist/indexes/IndexManager.js +502 -0
  56. package/dist/indexes/IndexManager.js.map +1 -0
  57. package/dist/indexes/PrimaryIndex.d.ts +240 -0
  58. package/dist/indexes/PrimaryIndex.d.ts.map +1 -0
  59. package/dist/indexes/PrimaryIndex.js +354 -0
  60. package/dist/indexes/PrimaryIndex.js.map +1 -0
  61. package/dist/indexes/SecondaryIndex.d.ts +204 -0
  62. package/dist/indexes/SecondaryIndex.d.ts.map +1 -0
  63. package/dist/indexes/SecondaryIndex.js +480 -0
  64. package/dist/indexes/SecondaryIndex.js.map +1 -0
  65. package/dist/indexes/errors.d.ts +66 -0
  66. package/dist/indexes/errors.d.ts.map +1 -0
  67. package/dist/indexes/errors.js +117 -0
  68. package/dist/indexes/errors.js.map +1 -0
  69. package/dist/indexes/index.d.ts +52 -0
  70. package/dist/indexes/index.d.ts.map +1 -0
  71. package/dist/indexes/index.js +131 -0
  72. package/dist/indexes/index.js.map +1 -0
  73. package/dist/indexes/types.d.ts +246 -0
  74. package/dist/indexes/types.d.ts.map +1 -0
  75. package/dist/indexes/types.js +30 -0
  76. package/dist/indexes/types.js.map +1 -0
  77. package/dist/performance/BatchWALWriter.d.ts +185 -0
  78. package/dist/performance/BatchWALWriter.d.ts.map +1 -0
  79. package/dist/performance/BatchWALWriter.js +490 -0
  80. package/dist/performance/BatchWALWriter.js.map +1 -0
  81. package/dist/performance/ColumnarStorage.d.ts +138 -0
  82. package/dist/performance/ColumnarStorage.d.ts.map +1 -0
  83. package/dist/performance/ColumnarStorage.js +875 -0
  84. package/dist/performance/ColumnarStorage.js.map +1 -0
  85. package/dist/performance/LazyQuery.d.ts +307 -0
  86. package/dist/performance/LazyQuery.d.ts.map +1 -0
  87. package/dist/performance/LazyQuery.js +588 -0
  88. package/dist/performance/LazyQuery.js.map +1 -0
  89. package/dist/performance/OptimizedBuffer.d.ts +375 -0
  90. package/dist/performance/OptimizedBuffer.d.ts.map +1 -0
  91. package/dist/performance/OptimizedBuffer.js +730 -0
  92. package/dist/performance/OptimizedBuffer.js.map +1 -0
  93. package/dist/performance/RWLock.d.ts +260 -0
  94. package/dist/performance/RWLock.d.ts.map +1 -0
  95. package/dist/performance/RWLock.js +570 -0
  96. package/dist/performance/RWLock.js.map +1 -0
  97. package/dist/performance/index.d.ts +41 -0
  98. package/dist/performance/index.d.ts.map +1 -0
  99. package/dist/performance/index.js +162 -0
  100. package/dist/performance/index.js.map +1 -0
  101. package/dist/performance/types.d.ts +247 -0
  102. package/dist/performance/types.d.ts.map +1 -0
  103. package/dist/performance/types.js +26 -0
  104. package/dist/performance/types.js.map +1 -0
  105. package/dist/storage/Checkpoint.d.ts +128 -0
  106. package/dist/storage/Checkpoint.d.ts.map +1 -0
  107. package/dist/storage/Checkpoint.js +251 -0
  108. package/dist/storage/Checkpoint.js.map +1 -0
  109. package/dist/storage/LightFile.d.ts +227 -0
  110. package/dist/storage/LightFile.d.ts.map +1 -0
  111. package/dist/storage/LightFile.js +526 -0
  112. package/dist/storage/LightFile.js.map +1 -0
  113. package/dist/storage/Recovery.d.ts +172 -0
  114. package/dist/storage/Recovery.d.ts.map +1 -0
  115. package/dist/storage/Recovery.js +399 -0
  116. package/dist/storage/Recovery.js.map +1 -0
  117. package/dist/storage/SHMFile.d.ts +243 -0
  118. package/dist/storage/SHMFile.d.ts.map +1 -0
  119. package/dist/storage/SHMFile.js +436 -0
  120. package/dist/storage/SHMFile.js.map +1 -0
  121. package/dist/storage/StorageEngine.d.ts +146 -0
  122. package/dist/storage/StorageEngine.d.ts.map +1 -0
  123. package/dist/storage/StorageEngine.js +353 -0
  124. package/dist/storage/StorageEngine.js.map +1 -0
  125. package/dist/storage/WALFile.d.ts +248 -0
  126. package/dist/storage/WALFile.d.ts.map +1 -0
  127. package/dist/storage/WALFile.js +597 -0
  128. package/dist/storage/WALFile.js.map +1 -0
  129. package/dist/storage/index.d.ts +10 -0
  130. package/dist/storage/index.d.ts.map +1 -0
  131. package/dist/storage/index.js +153 -0
  132. package/dist/storage/index.js.map +1 -0
  133. package/dist/types/index.d.ts +220 -0
  134. package/dist/types/index.d.ts.map +1 -0
  135. package/dist/types/index.js +7 -0
  136. package/dist/types/index.js.map +1 -0
  137. package/dist/utils/binary.d.ts +271 -0
  138. package/dist/utils/binary.d.ts.map +1 -0
  139. package/dist/utils/binary.js +454 -0
  140. package/dist/utils/binary.js.map +1 -0
  141. package/dist/utils/file.d.ts +166 -0
  142. package/dist/utils/file.d.ts.map +1 -0
  143. package/dist/utils/file.js +346 -0
  144. package/dist/utils/file.js.map +1 -0
  145. package/dist/utils/index.d.ts +6 -0
  146. package/dist/utils/index.d.ts.map +1 -0
  147. package/dist/utils/index.js +39 -0
  148. package/dist/utils/index.js.map +1 -0
  149. package/package.json +37 -0
  150. package/readme.md +124 -0
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * 存储模块导出
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createStorageEngine =
7
+ exports.StorageEngine =
8
+ exports.RecoveryPhase =
9
+ exports.RecoveryValidator =
10
+ exports.FastRecoveryManager =
11
+ exports.RecoveryManager =
12
+ exports.IncrementalCheckpointManager =
13
+ exports.AutoCheckpointScheduler =
14
+ exports.CheckpointManager =
15
+ exports.WalIndexManager =
16
+ exports.ShmFileManager =
17
+ exports.ShmHashTable =
18
+ exports.ShmSerializer =
19
+ exports.WalManager =
20
+ exports.WalReader =
21
+ exports.WalWriter =
22
+ exports.WalRecordSerializer =
23
+ exports.PageManager =
24
+ exports.LightFileManager =
25
+ exports.LightFileSerializer =
26
+ void 0;
27
+ var LightFile_1 = require("./LightFile");
28
+ Object.defineProperty(exports, "LightFileSerializer", {
29
+ enumerable: true,
30
+ get: function () {
31
+ return LightFile_1.LightFileSerializer;
32
+ },
33
+ });
34
+ Object.defineProperty(exports, "LightFileManager", {
35
+ enumerable: true,
36
+ get: function () {
37
+ return LightFile_1.LightFileManager;
38
+ },
39
+ });
40
+ Object.defineProperty(exports, "PageManager", {
41
+ enumerable: true,
42
+ get: function () {
43
+ return LightFile_1.PageManager;
44
+ },
45
+ });
46
+ var WALFile_1 = require("./WALFile");
47
+ Object.defineProperty(exports, "WalRecordSerializer", {
48
+ enumerable: true,
49
+ get: function () {
50
+ return WALFile_1.WalRecordSerializer;
51
+ },
52
+ });
53
+ Object.defineProperty(exports, "WalWriter", {
54
+ enumerable: true,
55
+ get: function () {
56
+ return WALFile_1.WalWriter;
57
+ },
58
+ });
59
+ Object.defineProperty(exports, "WalReader", {
60
+ enumerable: true,
61
+ get: function () {
62
+ return WALFile_1.WalReader;
63
+ },
64
+ });
65
+ Object.defineProperty(exports, "WalManager", {
66
+ enumerable: true,
67
+ get: function () {
68
+ return WALFile_1.WalManager;
69
+ },
70
+ });
71
+ var SHMFile_1 = require("./SHMFile");
72
+ Object.defineProperty(exports, "ShmSerializer", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return SHMFile_1.ShmSerializer;
76
+ },
77
+ });
78
+ Object.defineProperty(exports, "ShmHashTable", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return SHMFile_1.ShmHashTable;
82
+ },
83
+ });
84
+ Object.defineProperty(exports, "ShmFileManager", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return SHMFile_1.ShmFileManager;
88
+ },
89
+ });
90
+ Object.defineProperty(exports, "WalIndexManager", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return SHMFile_1.WalIndexManager;
94
+ },
95
+ });
96
+ var Checkpoint_1 = require("./Checkpoint");
97
+ Object.defineProperty(exports, "CheckpointManager", {
98
+ enumerable: true,
99
+ get: function () {
100
+ return Checkpoint_1.CheckpointManager;
101
+ },
102
+ });
103
+ Object.defineProperty(exports, "AutoCheckpointScheduler", {
104
+ enumerable: true,
105
+ get: function () {
106
+ return Checkpoint_1.AutoCheckpointScheduler;
107
+ },
108
+ });
109
+ Object.defineProperty(exports, "IncrementalCheckpointManager", {
110
+ enumerable: true,
111
+ get: function () {
112
+ return Checkpoint_1.IncrementalCheckpointManager;
113
+ },
114
+ });
115
+ var Recovery_1 = require("./Recovery");
116
+ Object.defineProperty(exports, "RecoveryManager", {
117
+ enumerable: true,
118
+ get: function () {
119
+ return Recovery_1.RecoveryManager;
120
+ },
121
+ });
122
+ Object.defineProperty(exports, "FastRecoveryManager", {
123
+ enumerable: true,
124
+ get: function () {
125
+ return Recovery_1.FastRecoveryManager;
126
+ },
127
+ });
128
+ Object.defineProperty(exports, "RecoveryValidator", {
129
+ enumerable: true,
130
+ get: function () {
131
+ return Recovery_1.RecoveryValidator;
132
+ },
133
+ });
134
+ Object.defineProperty(exports, "RecoveryPhase", {
135
+ enumerable: true,
136
+ get: function () {
137
+ return Recovery_1.RecoveryPhase;
138
+ },
139
+ });
140
+ var StorageEngine_1 = require("./StorageEngine");
141
+ Object.defineProperty(exports, "StorageEngine", {
142
+ enumerable: true,
143
+ get: function () {
144
+ return StorageEngine_1.StorageEngine;
145
+ },
146
+ });
147
+ Object.defineProperty(exports, "createStorageEngine", {
148
+ enumerable: true,
149
+ get: function () {
150
+ return StorageEngine_1.createStorageEngine;
151
+ },
152
+ });
153
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAIqB;AAHjB,gHAAA,mBAAmB,OAAA;AACnB,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AAEf,qCAKmB;AAJf,8GAAA,mBAAmB,OAAA;AACnB,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AACT,qGAAA,UAAU,OAAA;AAEd,qCAKmB;AAJf,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AAEnB,2CAKsB;AAJlB,+GAAA,iBAAiB,OAAA;AACjB,qHAAA,uBAAuB,OAAA;AACvB,0HAAA,4BAA4B,OAAA;AAGhC,uCAMoB;AALhB,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AACnB,6GAAA,iBAAiB,OAAA;AACjB,yGAAA,aAAa,OAAA;AAGjB,iDAAqE;AAA5D,8GAAA,aAAa,OAAA;AAAE,oHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * LightDB 存储引擎类型定义
3
+ * 包含所有公共接口、类型和结构体定义
4
+ */
5
+ import { OperationType } from "../constants";
6
+ /**
7
+ * .light 文件头部结构
8
+ * 存储文件元信息和全局状态
9
+ */
10
+ export interface LightHeader {
11
+ /** 魔数:用于验证文件格式 */
12
+ magic: number;
13
+ /** 文件格式版本号 */
14
+ version: number;
15
+ /** 页面大小(字节) */
16
+ pageSize: number;
17
+ /** 上次快照时的 LSN */
18
+ lastSnapshotLsn: bigint;
19
+ }
20
+ /**
21
+ * 数据记录结构
22
+ * 表示存储在页面中的单条记录
23
+ */
24
+ export interface Record {
25
+ /** 记录键 */
26
+ key: string;
27
+ /** 记录值(序列化后的二进制数据) */
28
+ value: Buffer;
29
+ }
30
+ /**
31
+ * 页面结构
32
+ * 表示 .light 文件中的一个数据页
33
+ */
34
+ export interface Page {
35
+ /** 页面ID */
36
+ pageId: number;
37
+ /** 页面中的记录列表 */
38
+ records: Record[];
39
+ /** 页面校验和 */
40
+ checksum: number;
41
+ }
42
+ /**
43
+ * WAL 记录结构
44
+ * 表示预写日志中的一条记录
45
+ */
46
+ export interface WalRecord {
47
+ /** 日志序列号,单调递增 */
48
+ lsn: bigint;
49
+ /** 事务ID */
50
+ transactionId: bigint;
51
+ /** 操作类型 */
52
+ operationType: OperationType;
53
+ /** 操作的键 */
54
+ key: string;
55
+ /** 操作的值(可选,删除操作无值) */
56
+ value: Buffer | null;
57
+ /** 记录校验和 */
58
+ checksum: number;
59
+ }
60
+ /**
61
+ * SHM 文件头部结构
62
+ * 存储 WAL 索引的元信息
63
+ */
64
+ export interface ShmHeader {
65
+ /** 当前 WAL 文件大小 */
66
+ walFileSize: bigint;
67
+ /** 最后一个完整页的 LSN */
68
+ lastCompleteLsn: bigint;
69
+ /** 哈希表中记录数量 */
70
+ recordCount: number;
71
+ /** 头部校验和 */
72
+ checksum: number;
73
+ }
74
+ /**
75
+ * SHM 哈希表条目
76
+ * 用于快速定位 WAL 中每个页面的最新记录
77
+ */
78
+ export interface ShmEntry {
79
+ /** 页面ID */
80
+ pageId: number;
81
+ /** 该页面最新记录的 LSN */
82
+ lsn: bigint;
83
+ /** 该记录在 WAL 文件中的偏移量 */
84
+ walOffset: bigint;
85
+ }
86
+ /**
87
+ * 存储引擎配置选项
88
+ */
89
+ export interface StorageEngineOptions {
90
+ /** 页面大小(字节),默认 4KB */
91
+ pageSize?: number;
92
+ /** WAL 文件大小阈值,超过此值自动触发检查点,默认 16MB */
93
+ walThreshold?: number;
94
+ /** 是否启用自动检查点,默认 true */
95
+ autoCheckpoint?: boolean;
96
+ /** fsync 策略:每次写入、每N条、或每N毫秒 */
97
+ fsyncStrategy?: FsyncStrategy;
98
+ }
99
+ /**
100
+ * fsync 策略配置
101
+ */
102
+ export interface FsyncStrategy {
103
+ /** 策略类型 */
104
+ type: "always" | "batch" | "interval";
105
+ /** 批量模式下,每N条记录 fsync 一次 */
106
+ batchSize?: number;
107
+ /** 间隔模式下,每N毫秒 fsync 一次 */
108
+ intervalMs?: number;
109
+ }
110
+ /**
111
+ * 检查点结果
112
+ */
113
+ export interface CheckpointResult {
114
+ /** 检查点完成时间 */
115
+ timestamp: number;
116
+ /** 检查点时的 LSN */
117
+ lsn: bigint;
118
+ /** 写入的页面数量 */
119
+ pagesWritten: number;
120
+ /** 写入的总字节数 */
121
+ bytesWritten: number;
122
+ }
123
+ /**
124
+ * 恢复结果
125
+ */
126
+ export interface RecoveryResult {
127
+ /** 恢复是否成功 */
128
+ success: boolean;
129
+ /** 回放的 WAL 记录数量 */
130
+ recordsReplayed: number;
131
+ /** 加载的页面数量 */
132
+ pagesLoaded: number;
133
+ /** 恢复耗时(毫秒) */
134
+ durationMs: number;
135
+ /** 错误信息(如果恢复失败) */
136
+ error?: string;
137
+ }
138
+ /**
139
+ * 存储引擎统计信息
140
+ */
141
+ export interface StorageStats {
142
+ /** 当前 LSN */
143
+ currentLsn: bigint;
144
+ /** 当前事务ID */
145
+ currentTransactionId: bigint;
146
+ /** WAL 文件大小 */
147
+ walFileSize: number;
148
+ /** .light 文件大小 */
149
+ lightFileSize: number;
150
+ /** 页面数量 */
151
+ pageCount: number;
152
+ /** 记录数量 */
153
+ recordCount: number;
154
+ /** 上次检查点时间 */
155
+ lastCheckpointTime: number | null;
156
+ }
157
+ /**
158
+ * 写操作结果
159
+ */
160
+ export interface WriteResult {
161
+ /** 操作是否成功 */
162
+ success: boolean;
163
+ /** 分配的 LSN */
164
+ lsn: bigint;
165
+ /** 写入的字节数 */
166
+ bytesWritten: number;
167
+ }
168
+ /**
169
+ * 批量写操作结果
170
+ */
171
+ export interface BatchWriteResult {
172
+ /** 操作是否成功 */
173
+ success: boolean;
174
+ /** 起始 LSN */
175
+ startLsn: bigint;
176
+ /** 结束 LSN */
177
+ endLsn: bigint;
178
+ /** 总写入字节数 */
179
+ totalBytesWritten: number;
180
+ /** 成功的记录数量 */
181
+ recordsWritten: number;
182
+ }
183
+ /**
184
+ * 哈希表迭代器结果
185
+ */
186
+ export interface HashIteratorResult {
187
+ /** 条目数据 */
188
+ entry: ShmEntry;
189
+ /** 是否还有更多条目 */
190
+ done: boolean;
191
+ }
192
+ /**
193
+ * 文件句柄包装接口
194
+ * 提供统一的文件操作抽象
195
+ */
196
+ export interface FileHandle {
197
+ /** 读取文件内容 */
198
+ read(buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
199
+ /** 写入文件内容 */
200
+ write(buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
201
+ /** 同步文件到磁盘 */
202
+ sync(): Promise<void>;
203
+ /** 关闭文件句柄 */
204
+ close(): Promise<void>;
205
+ /** 获取文件大小 */
206
+ size(): Promise<number>;
207
+ }
208
+ /**
209
+ * 内存中的数据页映射
210
+ */
211
+ export type PageMap = Map<number, Page>;
212
+ /**
213
+ * 内存中的记录映射
214
+ */
215
+ export type RecordMap = Map<string, Buffer>;
216
+ /**
217
+ * WAL 记录迭代器
218
+ */
219
+ export type WalRecordIterator = AsyncGenerator<WalRecord, void, unknown>;
220
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * LightDB 存储引擎类型定义
4
+ * 包含所有公共接口、类型和结构体定义
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * 二进制序列化工具类
3
+ * 提供 Buffer 读写、校验和计算等核心功能
4
+ */
5
+ /**
6
+ * 二进制工具类
7
+ * 提供静态方法用于 Buffer 操作和校验和计算
8
+ */
9
+ export declare class BinaryUtils {
10
+ /**
11
+ * 计算 Buffer 的 CRC32 校验和
12
+ * @param data 要计算校验和的数据
13
+ * @param offset 起始偏移量,默认 0
14
+ * @param length 数据长度,默认到末尾
15
+ * @returns CRC32 校验和(无符号 32 位整数)
16
+ */
17
+ static calculateChecksum(data: Buffer, offset?: number, length?: number): number;
18
+ /**
19
+ * 验证校验和
20
+ * @param data 数据内容
21
+ * @param expectedChecksum 期望的校验和
22
+ * @param offset 数据起始偏移量
23
+ * @param length 数据长度
24
+ * @throws ChecksumError 如果校验和不匹配
25
+ */
26
+ static verifyChecksum(data: Buffer, expectedChecksum: number, offset?: number, length?: number): void;
27
+ /**
28
+ * 读取无符号 8 位整数
29
+ * @param buffer 数据缓冲区
30
+ * @param offset 偏移量
31
+ */
32
+ static readUInt8(buffer: Buffer, offset: number): number;
33
+ /**
34
+ * 写入无符号 8 位整数
35
+ * @param buffer 数据缓冲区
36
+ * @param value 值
37
+ * @param offset 偏移量
38
+ */
39
+ static writeUInt8(buffer: Buffer, value: number, offset: number): void;
40
+ /**
41
+ * 读取无符号 16 位整数(Little-Endian)
42
+ * @param buffer 数据缓冲区
43
+ * @param offset 偏移量
44
+ */
45
+ static readUInt16LE(buffer: Buffer, offset: number): number;
46
+ /**
47
+ * 写入无符号 16 位整数(Little-Endian)
48
+ * @param buffer 数据缓冲区
49
+ * @param value 值
50
+ * @param offset 偏移量
51
+ */
52
+ static writeUInt16LE(buffer: Buffer, value: number, offset: number): void;
53
+ /**
54
+ * 读取无符号 32 位整数(Little-Endian)
55
+ * @param buffer 数据缓冲区
56
+ * @param offset 偏移量
57
+ */
58
+ static readUInt32LE(buffer: Buffer, offset: number): number;
59
+ /**
60
+ * 写入无符号 32 位整数(Little-Endian)
61
+ * @param buffer 数据缓冲区
62
+ * @param value 值
63
+ * @param offset 偏移量
64
+ */
65
+ static writeUInt32LE(buffer: Buffer, value: number, offset: number): void;
66
+ /**
67
+ * 读取有符号 32 位整数(Little-Endian)
68
+ * @param buffer 数据缓冲区
69
+ * @param offset 偏移量
70
+ */
71
+ static readInt32LE(buffer: Buffer, offset: number): number;
72
+ /**
73
+ * 写入有符号 32 位整数(Little-Endian)
74
+ * @param buffer 数据缓冲区
75
+ * @param value 值
76
+ * @param offset 偏移量
77
+ */
78
+ static writeInt32LE(buffer: Buffer, value: number, offset: number): void;
79
+ /**
80
+ * 读取无符号 64 位整数(Little-Endian)
81
+ * 返回 BigInt 类型
82
+ * @param buffer 数据缓冲区
83
+ * @param offset 偏移量
84
+ */
85
+ static readBigUInt64LE(buffer: Buffer, offset: number): bigint;
86
+ /**
87
+ * 写入无符号 64 位整数(Little-Endian)
88
+ * @param buffer 数据缓冲区
89
+ * @param value 值
90
+ * @param offset 偏移量
91
+ */
92
+ static writeBigUInt64LE(buffer: Buffer, value: bigint, offset: number): void;
93
+ /**
94
+ * 读取字符串(UTF-8 编码)
95
+ * @param buffer 数据缓冲区
96
+ * @param offset 起始偏移量
97
+ * @param length 字符串字节长度
98
+ */
99
+ static readString(buffer: Buffer, offset: number, length: number): string;
100
+ /**
101
+ * 写入字符串(UTF-8 编码)
102
+ * @param buffer 数据缓冲区
103
+ * @param value 字符串值
104
+ * @param offset 起始偏移量
105
+ * @returns 实际写入的字节数
106
+ */
107
+ static writeString(buffer: Buffer, value: string, offset: number): number;
108
+ /**
109
+ * 计算字符串的字节长度(UTF-8 编码)
110
+ * @param value 字符串值
111
+ */
112
+ static stringByteLength(value: string): number;
113
+ /**
114
+ * 分配指定大小的 Buffer(未初始化)
115
+ * 比 Buffer.alloc 更快,但内容未定义
116
+ * @param size Buffer 大小
117
+ */
118
+ static allocUnsafe(size: number): Buffer;
119
+ /**
120
+ * 分配指定大小的 Buffer(初始化为零)
121
+ * @param size Buffer 大小
122
+ */
123
+ static alloc(size: number): Buffer;
124
+ /**
125
+ * 连接多个 Buffer
126
+ * @param buffers Buffer 数组
127
+ */
128
+ static concat(buffers: Buffer[]): Buffer;
129
+ /**
130
+ * 复制 Buffer 的一部分
131
+ * @param source 源 Buffer
132
+ * @param start 起始位置
133
+ * @param end 结束位置
134
+ */
135
+ static slice(source: Buffer, start: number, end?: number): Buffer;
136
+ /**
137
+ * 比较两个 Buffer 是否相等
138
+ * @param a 第一个 Buffer
139
+ * @param b 第二个 Buffer
140
+ */
141
+ static equals(a: Buffer, b: Buffer): boolean;
142
+ }
143
+ /**
144
+ * Buffer 写入器
145
+ * 提供便捷的顺序写入功能
146
+ */
147
+ export declare class BufferWriter {
148
+ private buffer;
149
+ private offset;
150
+ /**
151
+ * 创建 Buffer 写入器
152
+ * @param size 初始 Buffer 大小
153
+ */
154
+ constructor(size: number);
155
+ /**
156
+ * 获取当前写入位置
157
+ */
158
+ get position(): number;
159
+ /**
160
+ * 获取已写入的数据
161
+ */
162
+ get data(): Buffer;
163
+ /**
164
+ * 确保有足够的空间
165
+ * @param additional 需要的额外空间
166
+ */
167
+ private ensureCapacity;
168
+ /**
169
+ * 写入无符号 8 位整数
170
+ */
171
+ writeUInt8(value: number): this;
172
+ /**
173
+ * 写入无符号 16 位整数(Little-Endian)
174
+ */
175
+ writeUInt16LE(value: number): this;
176
+ /**
177
+ * 写入无符号 32 位整数(Little-Endian)
178
+ */
179
+ writeUInt32LE(value: number): this;
180
+ /**
181
+ * 写入无符号 64 位整数(Little-Endian)
182
+ */
183
+ writeBigUInt64LE(value: bigint): this;
184
+ /**
185
+ * 写入字符串(带长度前缀)
186
+ */
187
+ writeString(value: string): this;
188
+ /**
189
+ * 写入字符串(不带长度前缀)
190
+ */
191
+ writeStringRaw(value: string): this;
192
+ /**
193
+ * 写入 Buffer
194
+ */
195
+ writeBuffer(value: Buffer): this;
196
+ /**
197
+ * 写入带长度前缀的 Buffer
198
+ */
199
+ writeBufferWithLength(value: Buffer): this;
200
+ /**
201
+ * 写入校验和(计算从起始位置到当前位置的数据)
202
+ */
203
+ writeChecksum(startOffset?: number): this;
204
+ }
205
+ /**
206
+ * Buffer 读取器
207
+ * 提供便捷的顺序读取功能
208
+ */
209
+ export declare class BufferReader {
210
+ private buffer;
211
+ private offset;
212
+ /**
213
+ * 创建 Buffer 读取器
214
+ * @param buffer 要读取的 Buffer
215
+ * @param startOffset 起始偏移量,默认 0
216
+ */
217
+ constructor(buffer: Buffer, startOffset?: number);
218
+ /**
219
+ * 获取当前读取位置
220
+ */
221
+ get position(): number;
222
+ /**
223
+ * 设置读取位置
224
+ */
225
+ set position(value: number);
226
+ /**
227
+ * 获取剩余可读字节数
228
+ */
229
+ get remaining(): number;
230
+ /**
231
+ * 检查是否有足够的可读数据
232
+ */
233
+ hasRemaining(required: number): boolean;
234
+ /**
235
+ * 读取无符号 8 位整数
236
+ */
237
+ readUInt8(): number;
238
+ /**
239
+ * 读取无符号 16 位整数(Little-Endian)
240
+ */
241
+ readUInt16LE(): number;
242
+ /**
243
+ * 读取无符号 32 位整数(Little-Endian)
244
+ */
245
+ readUInt32LE(): number;
246
+ /**
247
+ * 读取无符号 64 位整数(Little-Endian)
248
+ */
249
+ readBigUInt64LE(): bigint;
250
+ /**
251
+ * 读取字符串(带长度前缀)
252
+ */
253
+ readString(): string;
254
+ /**
255
+ * 读取指定长度的 Buffer
256
+ */
257
+ readBuffer(length: number): Buffer;
258
+ /**
259
+ * 读取带长度前缀的 Buffer
260
+ */
261
+ readBufferWithLength(): Buffer;
262
+ /**
263
+ * 读取并验证校验和
264
+ */
265
+ readAndVerifyChecksum(startOffset: number): number;
266
+ /**
267
+ * 跳过指定字节数
268
+ */
269
+ skip(bytes: number): this;
270
+ }
271
+ //# sourceMappingURL=binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/utils/binary.ts"],"names":[],"mappings":"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"}