DevToys Web Pro iconDevToys Web Proব্লগ
আমাদের রেট দিন:
ব্রাউজার এক্সটেনশন ব্যবহার করে দেখুন:

Protobuf ডিকোডার / এনকোডার

ডিকোড করা
ফরম্যাট:

Base64 এনকোড করা protobuf

  • ডিকোড করা ফিল্ড (2)

  • ফিল্ড #ওয়্যার টাইপমান
    1Varint(0)150
    2Length-delimited(2)testing
    প্রযুক্তিগত বিবরণ

    Protobuf ডিকোডার কীভাবে কাজ করে

    টুলটি কী করে

    Protobuf ডিকোডার .proto স্কিমা ফাইল ছাড়াই কাঁচা Protocol Buffer বাইনারি ডেটা পার্স করে, wire-format ফিল্ড নম্বর, টাইপ, এবং মান দেখায়। আপনি যখন একটি .proto ডেফিনিশন দেন, তখন এটি JSON-কে আবার protobuf বাইনারিতে এনকোড করাও সমর্থন করে। ফলে মূল স্কিমায় অ্যাক্সেস ছাড়াই নেটওয়ার্ক ট্র্যাফিক থেকে ক্যাপচার করা বা ডেটাবেসে সংরক্ষিত অস্বচ্ছ protobuf payload পরিদর্শন করা সম্ভব হয়।

    ডেভেলপারদের সাধারণ ব্যবহারক্ষেত্র

    ব্যাকএন্ড ডেভেলপাররা schema-less protobuf decoding ব্যবহার করে ডকুমেন্টেশনহীন gRPC API রিভার্স-ইঞ্জিনিয়ার করেন, Kafka টপিকে serialized মেসেজ ডিবাগ করেন, বা ডেটাবেস কলামে থাকা বাইনারি payload পরিদর্শন করেন। সিকিউরিটি রিসার্চাররা penetration testing-এর সময় protobuf-এনকোডেড নেটওয়ার্ক ট্র্যাফিক বিশ্লেষণ করেন। এনকোডিং মোড ডেভেলপারদের সাহায্য করে প্রোডাকশন সার্ভিসে স্কিমা পরিবর্তন ডিপ্লয় করার আগে তাদের .proto ডেফিনিশন প্রত্যাশিত বাইনারি আউটপুট তৈরি করছে কি না যাচাই করতে।

    ডেটা ফরম্যাট, টাইপ বা ভ্যারিয়েন্ট

    Protocol Buffers একটি কমপ্যাক্ট wire format ব্যবহার করে, যেখানে পাঁচটি wire type আছে: varint (int32, int64, bool, enum), 64-bit fixed (double, fixed64), length-delimited (string, bytes, embedded messages, packed repeated fields), 32-bit fixed (float, fixed32), এবং deprecated start/end group টাইপ। স্কিমা ছাড়া ডিকোডার string এবং embedded message-এর মধ্যে পার্থক্য করতে পারে না (দুটিই length-delimited), তাই এটি উভয় ব্যাখ্যা চেষ্টা করে এবং সবচেয়ে সম্ভাব্য parse দেখায়।

    সাধারণ ভুল ও এজ কেস

    স্কিমা ছাড়া ডিকোডিং স্বভাবগতভাবেই অস্পষ্ট — একটি varint হতে পারে signed int32 (zigzag), unsigned uint32, বা একটি boolean, এবং length-delimited ফিল্ডগুলো হতে পারে strings, bytes, বা nested messages। বাইনারি এনকোডিংয়ে ফিল্ড নাম হারিয়ে যায় এবং কেবল সংখ্যাসূচক ফিল্ড ট্যাগ হিসেবে দেখা যায়। স্কিমা প্রসঙ্গ ছাড়া packed repeated ফিল্ডগুলো একটি একক bytes ফিল্ডের মতোই দেখতে লাগে। অস্পষ্টতা দূর করতে ডিকোড করা আউটপুটকে উপলব্ধ যেকোনো ডকুমেন্টেশনের সাথে সবসময় ক্রস-রেফারেন্স করুন।

    কোডের বদলে কখন এই টুল ব্যবহার করবেন

    আপনার কাছে .proto ফাইল না থাকলে বা build toolchain সেটআপ না করেই এনকোডিং যাচাই করতে চাইলে, ক্যাপচার করা protobuf payload দ্রুত পরিদর্শনের জন্য এই ব্রাউজার টুলটি ব্যবহার করুন। প্রোডাকশন সিস্টেমের জন্য, সঠিক স্কিমা ফাইলসহ protoc, ভাষা-নির্দিষ্ট জেনারেটেড কোড, এবং পূর্ণ টাইপ সেফটি, ফরওয়ার্ড কম্প্যাটিবিলিটি, ও আপনার অ্যাপ্লিকেশনের বিল্ড সিস্টেমের সাথে ইন্টিগ্রেশন প্রদানকারী gRPC reflection সার্ভিস ব্যবহার করুন।