无标题
Đã viết một thư viện lua bson
Đã viết một thư viện lua bson.
Tôi đã phát triển một thư viện bson cho ngôn ngữ Lua. Trên trang web chính thức của định dạng bson có cung cấp một thư viện bson được viết thuần túy bằng Lua, nhưng phiên bản đó có nhiều chức năng còn thiếu sót. Vì mục tiêu của tôi là xây dựng một trình điều khiển MongoDB cho Lua nên tôi đã quyết định dùng C để phát triển một thư viện bson hoàn thiện hơn.
BSON (Binary JSON) là giao thức сериyal hóa dữ liệu cấu trúc được thiết kế đặc biệt cho hệ thống MongoDB. Do đó, nhiều tính năng của bson được xây dựng nhằm phục vụ trực tiếp cho MongoDB. Tuy nhiên, nếu chỉ sử dụng bson với mục đích сериyal hóa dữ liệu thông thường thì không nhất thiết phải triển khai đầy đủ các tính năng này. Trong quá trình phát triển, tôi vẫn quyết định thực hiện đầy đủ các chức năng để phục vụ cho việc xây dựng trình điều khiển MongoDB trong tương lai.
Một đặc điểm nổi bật của cấu trúc bson là tồn tại các trường có độ dài cố định. Khi sửa đổi các trường này không cần phải mã hóa lại toàn bộ dữ liệu, tính chất này cực kỳ hữu ích trong giao thức truyền thông của MongoDB. Vì vậy tôi đã thiết kế các giao diện API tương ứng để hỗ trợ tính năng này. Ngoài ra, vẫn còn nhiều tính năng thú vị khác có thể bổ sung như khả năng nối kết hai document bson thành một, v.v… Những tính năng này sẽ được triển khai dần trong quá trình phát triển trình điều khiển MongoDB.
Cập nhật ngày 12 tháng 3 năm 2014: Do MongoDB yêu cầu một số document bson phải đảm bảo thứ tự các key, trong khi bảng dữ liệu (table) của Lua lại không có thứ tự cố định, tôi đã bổ sung thêm hàm bson.encode_order để có thể mã hóa document theo đúng thứ tự mong muốn.