প্রকল্প সম্পর্কে

Dynoxide হলো একটি DynamoDB ইমুলেটর যা Rust-এ বাস্তবায়িত এবং এর স্টোরেজ স্তর হিসেবে SQLite ব্যবহার করে। এটি স্থানীয় উন্নয়ন, পরীক্ষা এবং CI-এর জন্য DynamoDB Local-এর একটি হালকা বিকল্প হিসেবে অবস্থান করছে এবং এটি বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে: একটি স্বতন্ত্র HTTP সার্ভার হিসেবে যা DynamoDB-সামঞ্জস্যপূর্ণ API প্রকাশ করে, কোডিং এজেন্টদের জন্য একটি MCP (মডেল কনটেক্সট প্রোটোকল) সার্ভার হিসেবে, Rust এবং iOS অ্যাপ্লিকেশনের জন্য একটি এমবেডেবল লাইব্রেরি হিসেবে এবং ব্রাউজার ব্যবহারের জন্য ওয়েবঅ্যাসেম্বলিতে কম্পাইল করা হয়। ইনস্টলেশন এবং চালানোর বিকল্পগুলির মধ্যে রয়েছে npx (npx dynoxide --port 8000), একটি npm ডেভ নির্ভরতা, একটি ডকার ইমেজ (ghcr.io/nubo-db/dynoxide) যা amazon/dynamodb-local-এর জন্য ড্রপ-ইন হিসাবে উদ্দিষ্ট, পাশাপাশি হোমব্রু, কার্গো এবং প্রি-বিল্ট বাইনারি। যেকোনো AWS SDK বা DynamoDB ক্লায়েন্টকে স্থানীয় এন্ডপয়েন্টে নির্দেশ করা যেতে পারে। একটি --log quiet ফ্ল্যাগ stderr-এ তথ্যমূলক স্টার্টআপ এবং শাটডাউন বার্তাগুলি দমন করে। README-তে DynamoDB Local এবং LocalStack-এর বিরুদ্ধে বেঞ্চমার্ক তুলনা রিপোর্ট করা হয়েছে যা কোল্ড স্টার্টআপ, GetItem লেটেন্সি, PutItem থ্রুপুট, টেস্ট-স্যুট রানটাইম, ডাউনলোড এবং ডিস্ক-আকার এবং নিষ্ক্রিয় মেমরি কভার করে। এটি আরও উল্লেখ করে যে প্রকল্পটি প্যারিটি স্যুট দ্বারা প্রকৃত DynamoDB-এর বিরুদ্ধে ক্রমাগত যাচাই করা হয়, যা একটি পাবলিক DynamoDB কনফরম্যান্স স্যুট, একটি পিনড স্ন্যাপশটের পরিবর্তে লাইভ স্ট্যান্ডিং প্রকাশিত হয়; README প্রকাশ করে যে Dynoxide এবং প্যারিটি স্যুট একটি রক্ষণাবেক্ষণকারী ভাগ করে। ওয়েবঅ্যাসেম্বলি বিল্ডটি আলাদাভাবে স্কোর করা হয় এবং বর্তমানে অন্যান্য লক্ষ্যগুলির চেয়ে বেশি অপারেশন এড়িয়ে যায়। সমর্থিত কার্যকারিতার মধ্যে রয়েছে টেবিল, আইটেম, কোয়েরি এবং স্ক্যান, ব্যাচ, লেনদেন, পার্টিকিউএল, স্ট্রিম, টিটিএল এবং ট্যাগ, জিএসআই এবং এলএসআই সমর্থন, এক্সপ্রেশন সিনট্যাক্স এবং DynamoDB-সামঞ্জস্যপূর্ণ পেজিনেশন, বৈধতা এবং ত্রুটি কোড। নথিভুক্ত সীমাবদ্ধতার মধ্যে রয়েছে অবাস্তবায়িত ক্লাউড-শুধুমাত্র অপারেশন (ব্যাকআপ এবং পয়েন্ট-ইন-টাইম পুনরুদ্ধার, গ্লোবাল টেবিল, কাইনেসিস স্ট্রিমিং, রিসোর্স নীতি, ক্ষমতা ব্যবস্থাপনা), ConsistentRead গ্রহণ করা হয়েছে কিন্তু কোনো প্রভাব নেই কারণ SQLite দৃঢ়ভাবে সামঞ্জস্যপূর্ণ, স্ট্রিমগুলি একটি একক শার্ড প্রকাশ করে এবং পেজিং প্যারামিটার উপেক্ষা করা হয় এবং লেনদেন-প্রতিযোগিতা ত্রুটি অনুকরণ করা হয় না। প্রকল্পটি স্পষ্টভাবে স্থানীয় উন্নয়ন, পরীক্ষা এবং CI-এর লক্ষ্যে, উৎপাদন ব্যবহারের জন্য নয়। ডকুমেন্টেশন ইনস্টলেশন, HTTP সার্ভার, টেস্টকন্টেইনার ব্যবহার, MCP সার্ভার, DynamoDB স্ট্রিম, টেবিল ফিল্টারিং এবং অ্যানোনিমাইজেশন সহ একটি আমদানি CLI, ওয়েবঅ্যাসেম্বলি, লাইব্রেরি এমবেডিং এবং ফিচার ফ্ল্যাগ, সামঞ্জস্য, সংস্করণ এবং প্রকাশনা কভার করে। README একটি ক্রেট সংস্করণ (শুধুমাত্র Rust লাইব্রেরি) থেকে একটি পণ্য সংস্করণকে আলাদা করে যা বাইনারি, npm প্যাকেজ, কন্টেইনার ইমেজ, ব্রাউজার ইঞ্জিন এবং GitHub অ্যাকশন কভার করে। Dynoxide MIT এবং Apache 2.0-এর অধীনে দ্বৈত-লাইসেন্সযুক্ত, একটি ক্লিন-রুম Rust বাস্তবায়ন এবং এর API সেমান্টিক্স এবং বৈধতা যুক্তিতে প্রভাব হিসাবে dynalite-কে স্বীকার করে। এটি বলে যে এটি Amazon-এর সাথে অনুমোদিত, সমর্থিত বা স্পনসরড নয়।