تخطَّ إلى المحتوى
ططارق الوليديAI Developer Tools Directory
m

marimo

نشط ومستقريعمل محلياً ✓بدون اشتراك API

دفتر Python تفاعلي يحافظ على اتساق الخلايا، ويُحفظ كملف نصي قابل للمراجعة والتشغيل كتطبيق.

$pip install marimo
💡

الاستخدام المثالي لهذه الأداة

مثالي لمحلل بيانات أو مطور Python أو فريق صغير يريد تجربة قابلة للإعادة، ومراجعة واضحة في Git، وتقريرًا أو أداة داخلية تفاعلية من المصدر نفسه. لا تستخدمه بدل منصة BI محكومة أو خدمة إنتاجية تحتاج توسعًا وصلاحيات مؤسسية.

التفاصيل والميزات المصورة

عندما تنفّذ خلايا التحليل بترتيب مختلف، قد تبدو النتائج صحيحة بينما تعتمد فعليًا على حالة قديمة مخفية. marimo يعالج هذه المشكلة بدفتر Python تفاعلي يبني علاقات الاعتماد بين الخلايا، ويعيد تشغيل ما تأثر بالتغيير أو يعلّمه كقديم، ويحفظ الدفتر كملف Python عادي يمكن مراجعته في Git. القيمة العملية ليست «دفترًا أجمل» فقط؛ بل مسار واحد يمكن تحريره كتجربة، وتشغيله كسكربت، وتقديمه كتطبيق ويب.

🧭 ما marimo، وكيف ستستخدمه؟

marimo محرر ووقت تشغيل مفتوح المصدر لدفاتر Python التفاعلية. تكتب خلايا Python أو SQL، وتضيف عناصر تحكم مثل القوائم والمنزلقات والجداول، ثم يحلل marimo أسماء المتغيرات ليكوّن رسم اعتماد موجّهًا. عند تغيير خلية، يشغّل الخلايا التابعة فقط في الوضع التفاعلي الافتراضي، أو يعلّمها بأنها قديمة عند اختيار الوضع الكسول.

يحفظ الدفتر في ملف .py قابل للقراءة، لا في مستند JSON يحتوي مخرجات وحالة تحرير كثيرة. لذلك تستطيع فتحه في محرر marimo، تشغيله مباشرةً عبر Python، أو تقديمه كتطبيق ويب يخفي الشيفرة عن زائر المتصفح افتراضيًا:

marimo edit sales_report.py
python sales_report.py
marimo run sales_report.py

marimo لا يكتشف منطق مشروعك تلقائيًا، ولا يحوّل أي تحليل إلى تطبيق إنتاجي بلا مراجعة. أنت تكتب الشيفرة وتختار البيانات والاعتمادات؛ وهو ينظّم التنفيذ والواجهة حولها.

ملف Python واحد يتحول في marimo إلى دفتر تفاعلي وسكربت وتطبيق ويب
ملف Python واحد يتحول في marimo إلى دفتر تفاعلي وسكربت وتطبيق ويب

🎯 الاستخدام المثالي والقيمة المضافة

يناسب marimo محلل البيانات أو مطور Python أو الباحث أو الفريق الصغير الذي يريد تجارب قابلة لإعادة التشغيل وتقارير داخلية تفاعلية دون فصل الدفتر عن الشيفرة. استخدمه لتحليل ملف CSV، واستكشاف قاعدة بيانات عبر SQL، وبناء لوحة خفيفة، أو مشاركة أداة داخلية تعتمد على Python.

لا تختَره لمجرد أن لديك ملف Jupyter قائمًا ومستقرًا ولا تحتاج تفاعلية أو Git؛ التحويل والتعلّم لهما تكلفة. كما أنه ليس بديلًا كاملًا لمنصة ذكاء أعمال ذات حوكمة وصلاحيات متعددة المستويات، ولا لخدمة ويب تحتاج هندسة خلفية وتوسّعًا واختبارات تشغيلية مستقلة.

قيمته المضافة هي تقليل ثلاث فجوات شائعة: حالة الدفتر غير المتسقة، صعوبة مراجعة ملفات الدفاتر، وإعادة كتابة التحليل كتطبيق منفصل. يظل نجاح ذلك مرتبطًا بطريقة كتابة الخلايا ومصادر البيانات واختباراتك.

⚡ الميزة الأولى: تنفيذ تفاعلي مبني على الاعتماد

يفحص marimo الشيفرة تحليلاً ساكنًا ليعرف أي خلية تعرّف متغيرًا وأي خلايا تستخدمه. إذا تغيرت خلية التحميل مثلًا، يشغّل الخلايا التي تعتمد على ناتجها بترتيب حتمي. وإذا حذفت خلية، تُزال متغيراتها من حالة البرنامج بدل بقائها سرًا في الذاكرة.

للتحليلات المكلفة، يمكنك استخدام التشغيل الكسول كي تُعلَّم الخلايا التابعة كقديمة بدل تشغيلها فورًا. هذا يعطيك إشارة واضحة إلى أن المخرجات لم تعد متزامنة، لكنه لا يلغي تكلفة الحساب عندما تقرر تحديثها.

هناك حد مهم: الوثائق تقول إن marimo لا يتتبع كل تعديل داخلي على كائن موجود ولا إسناد الخصائص بالطريقة نفسها التي يتتبع بها تعريف المتغير. اكتب تدفقًا واضحًا يعيد إسناد النتائج، ولا تفترض أن كل طفرة داخل قائمة أو DataFrame ستبني اعتمادًا جديدًا تلقائيًا.

تغيير خلية مصدر يعيد تشغيل الخلايا التابعة بينما يوضح حد تتبع تعديلات الكائنات
تغيير خلية مصدر يعيد تشغيل الخلايا التابعة بينما يوضح حد تتبع تعديلات الكائنات

🐍 الميزة الثانية: ملف Python قابل لـ Git والتنفيذ

دفتر marimo شيفرة Python نصية. هذا يجعل فرق Git أوضح من ملفات الدفاتر الغنية بالبيانات الوصفية والمخرجات، ويسمح بمراجعة دالة أو استعلام كسطور عادية. تستطيع كذلك استيراد دوال من دفتر آخر، وتشغيل اختبارات على الشيفرة، واستخدام محررك المعتاد إلى جانب واجهة marimo.

تشغيل python sales_report.py ينفذ الدفتر كسكربت، بينما marimo run يقدمه كتطبيق تفاعلي. هذا لا يعني أن فرق Git ستكون دائمًا صغيرة؛ إعادة ترتيب الخلايا أو تغييرات التنسيق قد تظل واسعة. راجع الملف والصورة أو التطبيق الناتج معًا عندما يكون الشكل جزءًا من القرار.

ملف marimo بصيغة Python يمر عبر مراجعة Git ثم يعمل كسكربت أو تطبيق
ملف marimo بصيغة Python يمر عبر مراجعة Git ثم يعمل كسكربت أو تطبيق

🗃️ الميزة الثالثة: بيانات وSQL وعناصر تفاعلية في المسار نفسه

يوفر marimo خلايا SQL، وعارض DataFrame تفاعليًا، وعناصر واجهة ترتبط بقيم Python. تستطيع مثلًا تحميل المبيعات، اختيار منطقة من قائمة، ثم تحديث الجدول والرسم والخلاصة التابعة للاختيار. لا تحتاج كتابة callbacks منفصلة لكل عنصر عندما تكون علاقة القيم واضحة في الرسم الاعتمادي.

التثبيت الأساسي لا يجلب كل الإضافات. توصي الوثائق بالحزمة marimo[recommended] لفتح مزايا إضافية مثل SQL والإكمال بالذكاء الاصطناعي والرسم والتصدير. وهذا يزيد عدد الاعتمادات؛ ثبّت ما يحتاجه مشروعك واستخدم ملف قفل في بيئة الفريق.

مصدر بيانات يمر عبر SQL ومرشح تفاعلي ليحدث الجدول والرسم والخلاصة
مصدر بيانات يمر عبر SQL ومرشح تفاعلي ليحدث الجدول والرسم والخلاصة

📦 الميزة الرابعة: اعتماديات مضمنة وبيئات sandbox للحزم

يمكن لوضع sandbox إنشاء بيئة افتراضية معزولة للحزم وتخزين اعتماديات PEP 723 داخل ملف الدفتر. مثال موثق للبدء السريع هو:

uvx marimo edit --sandbox notebook.py

هذا مفيد لإرسال ملف يصف مكتباته بدل قائمة تعليمات منفصلة. لكنه ليس صندوق أمان للشيفرة: العزل يخص الحزم، ولا يمنع الدفتر من قراءة ملفات المستخدم أو الاتصال بالشبكة بصلاحيات العملية. وتوضح الوثائق أن ملف القفل يُدار منفصلًا؛ إذا كانت إعادة البناء الدقيقة مهمة، خزّن القفل وراجعه مع المصدر.

اعتماديات PEP 723 تنشئ بيئة حزم معزولة بينما تبقى الملفات والشبكة خارج حد العزل
اعتماديات PEP 723 تنشئ بيئة حزم معزولة بينما تبقى الملفات والشبكة خارج حد العزل

🪜 مثال عملي: تقرير مبيعات تفاعلي صغير

لنفترض أن لديك sales.csv وتريد تقريرًا يستطيع زميلك تصفية نتائجه:

  1. ثبّت marimo وشغّل البرنامج التعليمي للتأكد من أن الأمر متاح.
  2. أنشئ الملف عبر marimo edit sales_report.py.
  3. أضف خلية تستورد pandas أو Polars وتقرأ الملف من مسار معروف.
  4. أضف قائمة لاختيار المنطقة، واجعل خلية الترشيح تعتمد على قيمتها.
  5. احسب إجمالي الإيراد وجدول أفضل المنتجات، ثم اعرض رسمًا مناسبًا.
  6. غيّر المنطقة وتأكد بصريًا من أن النتائج التابعة تتحدث، واختبر حالة البيانات الفارغة.
  7. احفظ الملف، راجع فرق Git، ثم شغله كسكربت للتحقق من التنفيذ غير التفاعلي.
  8. شاركه داخليًا عبر marimo run sales_report.py خلف مصادقة وHTTPS إذا كان الوصول شبكيًا.

هذا مثال تعليمي لم ننفذه في بيئة الموقع، وليس قياس أداء أو ضمانًا لملف CSV بعينه. انتبه إلى أنواع الأعمدة، الترميز، القيم المفقودة، وحجم البيانات الفعلي.

تحرير تقرير المبيعات ثم مراجعته وتشغيله كسكربت أو تطبيق مع تحقق واضح
تحرير تقرير المبيعات ثم مراجعته وتشغيله كسكربت أو تطبيق مع تحقق واضح

⚖️ مقارنة بالعمل اليدوي أو بدفتر تقليدي

المهمةدفتر تقليدي أو عمل يدويمع marimo
تحديث نتيجة بعد تغيير مدخلتتذكر الخلايا المطلوب تشغيلها وترتيبهاالاعتمادات تحدد الخلايا التابعة، أو تضع علامة قديم
مراجعة التغييرقد يحتوي الملف مخرجات وبيانات وصفية كثيرةالمصدر ملف Python نصي أسهل للمراجعة
تحويل التحليل لأداة داخليةتعيد بناء الواجهة ومسار التنفيذيمكن تقديم الدفتر نفسه كتطبيق ويب
إدارة الحزمتعليمات منفصلة أو بيئة يدويةPEP 723 وsandbox للحزم خيار متاح
التحكم الحر بترتيب التنفيذممكن لكنه قد يخلق حالة خفيةالترتيب تحدده علاقات المتغيرات
منصة مؤسسية متعددة الصلاحياتقد توفرها منتجات متخصصةتحتاج طبقة نشر ومصادقة وحوكمة حول marimo

marimo لا يجعل Jupyter «خاطئًا». اختره عندما تكون قابلية الإعادة وGit والتطبيق التفاعلي أهدافًا حقيقية، واحتفظ بالأداة الحالية عندما يكون التحويل بلا عائد واضح.

🚀 التثبيت والتوافق

أبسط أمر موثق هو:

pip install marimo
marimo tutorial intro

ويمكن تثبيت الإضافات الموصى بها عبر pip install "marimo[recommended]". يعلن ملف المشروع دعم Python 3.10 فأحدث في الإصدار المفحوص، وتصف الحزمة نفسها بأنها مستقلة عن نظام التشغيل. توجد مسارات موثقة لـ uv وpixi وconda، إضافة إلى إضافات VS Code/Cursor وPyCharm، لكن هذه البطاقة تسجّل منصة universal فقط لأن جوهر الأداة يعمل عبر Python ولا يتطلب وكيل برمجة بعينه.

أحدث إصدار مستقر تحققنا منه هو 0.25.2 بتاريخ 19 أكتوبر 2026. أظهر GitHub وقت الفحص نحو 23.4 ألف نجمة و1.4 ألف تفرع، وآخر التزام ظاهر على الفرع الرئيسي بتاريخ 30 أكتوبر 2026. الأرقام لحظة زمنية وليست تقييم جودة.

💰 التكلفة والتشغيل المحلي والذكاء الاصطناعي الاختياري

المستودع مرخص بـ Apache-2.0، ويمكن تشغيل المحرر والسكربت والتطبيق محليًا بلا اشتراك أو API مدفوع. توجد خدمة molab سحابية مستقلة، لكن استخدامها ليس شرطًا للوظائف الأساسية.

ميزات الذكاء الاصطناعي اختيارية. تسمح الوثائق بمفاتيحك الخاصة أو نماذج محلية عبر Ollama وواجهات متوافقة مع OpenAI. عند تفعيل مساعد سحابي، قد تُرسل الشيفرة أو السياق إلى مزودك وفق إعداداته، ويستطيع المساعد داخل المحرر استخدام قيم المتغيرات ومخططات DataFrame وقواعد البيانات لتكوين السياق. افصل البيانات الحساسة، واختر نموذجًا محليًا أو عطّل الميزة إن لم تكن هذه المشاركة مقبولة.

🔐 الخصوصية والصلاحيات والأمان

دفتر marimo هو برنامج Python يعمل بصلاحيات المستخدم. افتح وشغّل الملفات الموثوقة فقط، وخصوصًا لأن marimo run يشغّل التطبيق تلقائيًا دائمًا وفق الوثائق. وضع sandbox يعزل الحزم ولا يعزل الملفات أو الشبكة.

عند النشر البعيد:

  • اربط الخدمة على 127.0.0.1 خلف reverse proxy عندما يناسب البنية.
  • فعّل مصادقة مناسبة واستخدم HTTPS؛ إعداد cookie الآمن لا يصبح صحيحًا تلقائيًا في كل نشر.
  • لا تعتمد على إخفاء مصدر Python في المتصفح كحد أمني للخادم.
  • راجع المجلدات التي تسمح بفتح دفاتر منها؛ الملفات الجديدة في مجلد مراقَب قد تصبح قابلة للفتح والتنفيذ.
  • تعامل بحذر مع الذاكرة المخبأة المشتركة: التخزين الافتراضي قد يستخدم pickle، وفتح cache غير موثوق قد يؤدي إلى تنفيذ شيفرة. التوقيع والتحقق ميزات اختيارية وليستا حماية تلقائية لكل محمّل.
شيفرة Python موثوقة تعمل داخل حدود صلاحيات الملفات والشبكة والمصادقة والذاكرة المخبأة
شيفرة Python موثوقة تعمل داخل حدود صلاحيات الملفات والشبكة والمصادقة والذاكرة المخبأة

⚠️ القيود ومتى لا تستخدمه

  • التحليل الساكن لا يتتبع كل تعديل داخلي للكائنات أو إسناد الخصائص؛ اكتب تدفق بيانات صريحًا.
  • الخلايا الباهظة قد تعاد تلقائيًا في الوضع المتفاعل؛ استخدم lazy أو عطّل الخلية أثناء التحرير، مع العلم أن تطبيق run يعمل تلقائيًا.
  • تحويل .ipynb متاح، لكنه لا يضمن أن كل widget أو اعتماد جانبي أو ترتيب ضمني سيتحول بلا مراجعة.
  • الحزمة الموصى بها تضيف اعتماديات؛ لا تثبتها آليًا في إنتاج بلا قفل وفحص.
  • التطبيق المقدم من دفتر ليس بديلًا تلقائيًا لهندسة خدمة إنتاجية قابلة للتوسع والمراقبة.
  • التعاون اللحظي وإدارة المستخدمين والسياسات المؤسسية ليست نتيجة تلقائية من تشغيل النسخة المفتوحة المصدر محليًا.
  • لم نثبت marimo أو ننفذ المثال أو نختبر الأداء، ولم نجرِ تدقيقًا أمنيًا مستقلًا.

📚 المصادر وتاريخ التحقق

تم التحقق في 31 أكتوبر 2026 من المصادر الأصلية:

للمقارنة راجعنا SOPS 3.13.3 من مستودعه ووثائقه الرسمية: أداة أمنية لنصوص الأسرار المشفرة، مرخصة MPL-2.0 وتدعم مزودي مفاتيح متعددين. اخترنا marimo لأنه يضيف مجال البيانات والتشغيل الخفيف بعد بطاقة توثيق، بينما يتقاطع SOPS مع فئة الأمن الممثلة حديثًا بـ Gitleaks. استُخدمت GitHub Topics/Trending وواجهات الناشرين وclaudeskills.info وdshmarket.com للاكتشاف فقط؛ اعتمدت تفاصيل المنتج المنشورة على المصادر الأصلية أعلاه.