Simpleton هو UDP بسيط للغاية لحل تسجيل قاعدة البيانات الذي يقبل فقط حزم UDP ويخزنها في قاعدة بيانات SQLite3. افتراضيًا، يقوم بتخزينها في simpleton.db
في الدليل الحالي، ولكن يمكنك تجاوز ذلك باستخدام خيارات سطر الأوامر.
هذا ليس مفيدًا جدًا لأي شيء سوى الاختبار البسيط، ولكن يمكنك التوسع فيه.
من أجل إنشاء Simpleton، ما عليك سوى تشغيل make
وسيظهر الملف الثنائي في دليل bin
. افتراضيًا، سيتم إنشاؤه لـ OSX.
make
لإنشاء منصات أخرى، يرجى تحرير متغيرات GOOS
و GOARCH
في Makefile
. يمكنك أيضًا إدخال هذه المعلمات في سطر الأوامر عند تشغيل make
، مثل هذا.
GOOS=linux GOARCH=amd64 make
يمكنك العثور على قيم هذه المتغيرات لمنصات مختلفة في syslist.go، لكن القيم الأكثر شيوعًا هي:
نظام التشغيل | جيد | جورش |
---|---|---|
أو إس إكس | داروين | AMD64 |
لينكس | لينكس | AMD64 |
ويندوز | ويندوز | AMD64 |
بالطبع، يمكنك التحويل البرمجي (على سبيل المثال تجميع ثنائيات Linux على أجهزة OSX) بمجرد تعيين التركيبة الصحيحة من GOOS وGOARCH، على الرغم من أنك قد تواجه مشكلة في Windows. (لم أقم بإنشاء هذا لنظام التشغيل Windows).
سيظهر الملف الثنائي في bin
، لذا يمكنك تشغيله من الدليل الرئيسي باستخدام:
bin/simpleton
لسرد خيارات سطر الأوامر، يمكنك استخدام العلامة -h
:
bin/simpleton -h
فيما يلي مثال لتشغيل Simpleton مع خيارات تجعله يستمع إلى واجهة معينة (10.1.0.3 في المثال) ومنفذ (7788) وتخزين قاعدة البيانات في /tmp/simpleton.db
:
bin/simpleton -u 10.1.0.3:7788 -d /tmp/simpleton.db
إذا كنت تريد البحث في قاعدة البيانات الناتجة، فيمكنك تثبيت SQLite3 على جهازك وفحص قاعدة البيانات باستخدام أمر sqlite3
. لفتح قاعدة البيانات في المثال السابق فقط قم بتشغيل:
sqlite3 /tmp/simpleton.db
اكتب .schema
لرؤية مخطط قاعدة البيانات البسيط للغاية. يمكنك الآن تنفيذ عبارات SQL على البيانات.
ملاحظة: لست متأكدًا تمامًا من تزامن SQLite3 لذا لن أستخدم قاعدة البيانات كنقطة تكامل (لا ينبغي عليك ذلك أبدًا).
وهذا أيضًا هو سبب احتواء الكود على قفل كائن المزامنة (mutex lock) حول الوصول إلى قاعدة البيانات. تم أخذ الكود من مشروع يحتوي على عدة goroutines للوصول إلى قاعدة البيانات. هذا البرنامج لا يحتوي على ذلك، لكنني تركت قفل كائن المزامنة (mutex) للتذكير فقط.
لاستخدامات الإنتاج، يجب عليك استخدام قاعدة بيانات PostgreSQL أو ما شابه ذلك، والتي تم تصميمها للتزامن. ولكن بالنسبة للتجارب الصغيرة وعندما يكون لديك قدر محدود من التزامن، فإن SQLite3 يعد وحشًا صغيرًا يتمتع بقدرات مذهلة.
لاحظ أن واجهة HTTP لا تحتوي على آليات مصادقة أو أمان ، لذا لا تستخدمها لأي شيء آخر غير الاختبار. العنوان الافتراضي لواجهة الويب هو:
http://localhost:8008/
واجهة الويب بسيطة للغاية. لديك عنواني URL يمكنهم الوصول إلى البيانات:
/data
/data/{id}
يقوم الأول بإرجاع مصفوفة JSON، بينما يقوم الثاني فقط بإرجاع الحمولة النافعة لإدخال البيانات المقدمة بواسطة المعرف. سيكون مسار /data
مقتصراً على أحدث 20 إدخالاً فقط في قاعدة البيانات، ولكن يمكنك تصفح قاعدة البيانات عن طريق تعيين معلمات عنوان URL offset
limit
:
/data?offset=10&limit=10
يدعم Simpleton وجود دليل يحتوي على ملفات ثابتة حتى تتمكن من إنشاء بعض صفحات HTML مع روابط مفيدة للمحتوى أو ربما لاستضافة تطبيقات JS-frontend.
تحقق من تعليمات سطر الأوامر لمعرفة المعلمات التي يمكنك التلاعب بها.