C:
টমল নিয়ে কাজ করা

কিভাবে:

C তে TOML এর সাথে কাজ করতে, প্রথমে আপনার এমন একটি লাইব্রেরির প্রয়োজন যা TOML ফাইল পার্স করতে সক্ষম, কারণ C স্ট্যান্ডার্ড লাইব্রেরিতে এই ফাংশনালিটি অন্তর্ভুক্ত করা নেই। একটি জনপ্রিয় পছন্দ হল tomlc99, C99 এর জন্য একটি লাইটওয়েট TOML পার্সার। এখানে একটি সাধারণ TOML কনফিগ ফাইল পড়ার একটি দ্রুত গাইড দেওয়া হল:

প্রথমে, নিশ্চিত করুন আপনার tomlc99 ইনস্টল করা আছে এবং আপনার প্রজেক্টে সঠিকভাবে লিঙ্ক করা আছে।

স্যাম্পল TOML ফাইল (config.toml):

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true

এই ফাইল পার্স করার জন্য C কোড:

#include <stdio.h>
#include <stdlib.h>
#include "toml.h"

int main() {
    FILE *configFile;
    configFile = fopen("config.toml", "r");
    if (!configFile) {
        perror("Cannot open file");
        return EXIT_FAILURE;
    }

    toml_table_t *config = toml_parse_file(configFile, NULL, 0);
    if (!config) {
        fprintf(stderr, "Error parsing file\n");
        fclose(configFile);
        return EXIT_FAILURE;
    }

    toml_table_t *database = toml_table_in(config, "database");
    if (database) {
        const char *server = toml_raw_in(database, "server");
        printf("Database Server: %s\n", server);

        toml_array_t *ports = toml_array_in(database, "ports");
        for (int i = 0; i < toml_array_nelem(ports); i++) {
            int64_t port;
            toml_int_at(ports, i, &port);
            printf("Port %d: %ld\n", i, port);
        }
    }

    toml_free(config);
    fclose(configFile);
    return EXIT_SUCCESS;
}

আউটপুট:

Database Server: "192.168.1.1"
Port 0: 8001
Port 1: 8001
Port 2: 8002

গভীরে ডুব:

TOML টম প্রেস্টন-ওয়ার্নার, GitHub-এর সহ-প্রতিষ্ঠাতা দ্বারা অন্যান্য কনফিগারেশন ফাইল ফরম্যাটের সীমাবদ্ধতাগুলির প্রতি সাড়া দিয়ে তৈরি করা হয়েছিল। এর লক্ষ্য হল মানুষ এবং কম্পিউটার উভয়ের জন্য পড়া এবং লেখা সোজা এবং অস্পষ্টতামুক্ত করা, জটিল পার্সিং নিয়মগুলির প্রয়োজন ছাড়াই। C ইকোসিস্টেমে, TOML Rust এর serde_toml অথবা Python এর toml এর মতো উচ্চস্তরীয় ভাষাগুলিতে যেমন একটি প্রথম শ্রেণীর নাগরিক নয়, যেখানে স্বদেশী সমর্থন সহ লাইব্রেরিগুলি আছে। বরং, C ডেভেলপারদের tomlc99 এর মতো বাহ্যিক লাইব্রেরিগুলির উপর নির্ভর করতে হয়, তবে এটি C এর ন্যূনতমতা এবং পারফরম্যান্সের জোর দেওয়ার বিষয়ে স্বাভাবিক।

TOML এর স্পষ্টতা প্রশংসিত হলেও, একটি কনফিগারেশন ফাইল ফরম্যাট বেছে নেওয়ার সময় প্রজেক্টের প্রয়োজনগুলি বিবেচনা করা জরুরি। সেনারিওগুলিতে যেখানে আরো জটিল কাঠামো অথবা ওয়েব API-এর সাথে মিথস্ক্রিয়া প্রয়োজন, JSON অথবা এমনকি YAML তাদের বৃদ্ধ জটিলতার সত্ত্বেও একটি ভাল ফিট অফার করতে পারে। TOML পঠনযোগ্যতা এবং সাদাসিধাতা যেখানে পরম গুরুত্বপূর্ণ, সেখানে ঝলমলে, না যেখানে সবচেয়ে উন্নত ডেটা কাঠামো প্রয়োজন।