- Định dạng tuần tự hóa nhị phân Zero-Copy được phát triển nhằm xóa bỏ ranh giới giữa phân tích dữ liệu và tuần tự hóa
- Mã hóa dữ liệu theo cấu trúc B-tree trong một bộ đệm liên tục duy nhất, cho phép truy cập và chỉnh sửa các trường bất kỳ trong thời gian
O(log n)
- Định dạng trong bộ nhớ cũng chính là định dạng truyền tải, nên có thể gửi và nhận ngay mà không cần phân tích hay tuần tự hóa lại riêng biệt
- Ngay khi nhận được, việc tra cứu khóa, sửa giá trị và truyền đi đều được xử lý chỉ bằng sao chép bộ nhớ (
memcpy)
- Cấu trúc không cần schema (self-describing), có thể sử dụng mà không cần IDL hay định nghĩa schema
- Hỗ trợ chuyển đổi hai chiều với JSON, đảm bảo khả năng tương thích với API và bộ dữ liệu hiện có
- Có thể xuất ra dạng JSON khi gỡ lỗi hoặc kiểm tra thông điệp
- Thiết kế tập trung vào hiệu năng
- Gồm cấu trúc B-tree thân thiện với cache và bản triển khai C tối thiểu 9.3 kB
- Nhanh hơn tới 120 lần so với thư viện JSON nhanh nhất dùng SIMD, và nhanh hơn tới 242 lần so với Google Flatbuffers
- Là một trong những định dạng dữ liệu không schema nhanh nhất thế giới
- Đặc điểm kỹ thuật
- Hỗ trợ đọc/ghi zero-copy, mọi thao tác I/O có độ phức tạp
O(log n)
- Tích hợp xác minh con trỏ và an toàn kiểu thời gian chạy
- Không dùng
malloc(), bộ đệm do phía gọi tự cung cấp
- Độ trễ có thể dự đoán được và mức sử dụng bộ nhớ thấp
- Dựa trên C11 (cú pháp GNU C), không có phụ thuộc bên ngoài
- Có thể tùy chọn dùng yyjson như phụ thuộc phụ để hỗ trợ chuyển đổi JSON
- Cấu trúc API
- Buffer API: dựa trên bộ đệm do người dùng cung cấp, tối đa hóa khả năng kiểm soát bộ nhớ
- Context API: trừu tượng hóa quản lý bộ nhớ, cung cấp giao diện đơn giản
- Kết quả so sánh và benchmark
- Tốc độ xử lý vượt trội so với các định dạng văn bản như JSON, BSON, MessagePack
- Cung cấp độ linh hoạt và khả năng chỉnh sửa cao hơn so với các định dạng nhị phân như Cap’n Proto, Flatbuffers
- Ghi nhận hiệu năng hàng đầu trên dữ liệu Twitter API thực tế, Kostya JSON, benchmark tuần tự hóa C++ và nhiều trường hợp khác
- Thiết kế bảo mật
- Bao gồm kiểm tra biên để chống tràn, macro con trỏ theo thế hệ, giới hạn đệ quy và xác minh kiểu thời gian chạy
- Có cấu trúc phù hợp để xử lý dữ liệu đầu vào không đáng tin cậy
- Ngữ cảnh sử dụng
- Tối đa hóa hiệu quả CPU trong các trường hợp như nhắn tin mạng hiệu năng cao, xử lý dữ liệu thời gian thực, môi trường nhúng
- Có thể áp dụng ngay trong các hệ thống dựa trên giao diện C
- Giấy phép và khả năng mở rộng
- Phát hành theo giấy phép MIT, là một bản triển khai C độc lập
- Trong tương lai có thêm lộ trình như language binding, benchmark nén và xây dựng đặc tả chính thức
- Nguồn gốc và bối cảnh
- Là dự án được tái triển khai độc lập dựa trên khái niệm được đề xuất trong bài báo Lite² công bố năm 2024
- Tên gọi Lite³ mang ý nghĩa nhẹ hơn Lite²
Chưa có bình luận nào.