
roamr v0.1.4
اعثر على أفضل شبكة WiFi لموقعك — تَقيّم كل شبكة محفوظة حسب جودتها الحقيقية في الاستخدام الفعلي، وليس مجرد قوة الإشارة.
roamr
اعثر على أفضل شبكة WiFi لموقعك دون قطع اتصالك.
في مكتب (أو منزل) يحتوي على عدة شبكات WiFi، تتغير الشبكة الأفضل مع تنقلك، و«الأفضل» لا تعني فقط أشرطة الإشارة. فقد تظهر شبكة بإشارة كاملة لكنها تبقى بطيئة: ازدحام في نطاق 2.4 GHz، معيار WiFi قديم، قناة مزدحمة. يقرأ roamr ما يعرفه نظام تشغيلك بالفعل عن كل شبكة محفوظة قريبة، ويقيّمها وفقًا للجودة الواقعية، ويوضح السبب، ويخبرك أيها تستخدم.

الحالة: متاح على macOS (brew install --cask sourabh-khot65/tap/roamr)، بالإضافة إلى تطبيق مصاحب لشريط القوائم. تم التحقق من عمله على Windows؛ أما Linux فهو منفَّذ وفي مرحلة المعاينة (انظر المنصات). لا تملك Mac؟ جرّب roamr --demo.
التثبيت
macOS (موصى به). ثبّت عبر Homebrew. يزيل cask سمة العزل (quarantine) عند التثبيت، لذا يعمل الملف الثنائي دون تحذير Gatekeeper الذي قد يظهر عند التنزيل من المتصفح:
brew install --cask sourabh-khot65/tap/roamr
Windows. ثبّت باستخدام Scoop:
scoop bucket add roamr https://github.com/sourabh-khot65/scoop-bucket
scoop install roamr
أي منصة. نزّل ملفًا ثنائيًا من أحدث إصدار، أو ابنِه من المصدر باستخدام Go 1.26+:
go install github.com/sourabh-khot65/roamr/cmd/roamr@latest
الملفات الثنائية من صفحة Releases (خلافًا لـ Homebrew) غير موقّعة، لذا يعزلها Gatekeeper على macOS. أزل العزل مرة واحدة باستخدام xattr -d com.apple.quarantine ./roamr. تركيبات Homebrew غير متأثرة. توثيق ملف roamr الثنائي نفسه (notarization) مُخطط له لكنه خارج نطاق v0.x.
بدء سريع
بعد التثبيت، جرّب العرض التوضيحي المدمج (لا حاجة لأجهزة WiFi):
roamr --demo --why # or, from source: go run ./cmd/roamr --demo --why
→ Switch to Office-6E — clearly better here.
Office-6E ▀▀▀▀▁ 86% 6GHz ax score 95
- 6 GHz — fast, uncongested
- channel is clear
Office-5G ▀▀▀▀▀ 92% 5GHz ax score 93
- strong signal (-54 dBm)
- channel is clear
Office-Guest ▀▀▀▁▁ 68% 5GHz ac score 81
- channel is clear
▸ Office-2G ▀▀▀▀▀ 100% 2.4GHz n score 69
- strong signal (-47 dBm)
- 2.4 GHz — slower, more interference
- WiFi 4 — older, slower standard
أنت متصل بشبكة Office-2G (المشار إليها بـ ▸) بإشارة 100%، لكن roamr يضعها في المرتبة الأخيرة، 2.4 GHz على معيار WiFi 4 قديم، ويوجّهك إلى Office-6E بدلًا منها. تلك الفجوة بين «إشارة كاملة» و«جودة فعلية» هي الهدف الأساسي من roamr.
الأوامر
| الأمر | الوظيفة |
|---|---|
roamr | يوصي بأفضل شبكة معروفة هنا (الافتراضي) |
roamr current | يشخّص الشبكة التي تتصل بها (بما في ذلك زمن الاستجابة/الاهتزاز) |
roamr list | يعرض الشبكات المعروفة ودرجاتها |
roamr watch | يأخذ عينات باستمرار؛ ويقترح التبديل فقط عندما تكون الشبكة الأخرى أفضل بشكل دائم |
roamr speedtest | يقيس معدل التنزيل الفعلي للشبكة التي تتصل بها |
الخيارات: --why (شرح الدرجات)، --json (صيغة قابلة للقراءة آليًا)، --demo (بدون أجهزة)، --interval / --samples (لأمر watch).
roamr استشاري بطبيعته: فهو يقرأ ما يعرفه نظام التشغيل لديك ولا يغيّر اتصالك أبدًا. يخبرك أي شبكة محفوظة هي الأفضل، وتقوم أنت بالتبديل من قائمة Wi-Fi في نظام التشغيل.
يعمل watch على تنعيم درجة كل شبكة بمرور الوقت (EMA) ولا يشير إلى التبديل إلا عندما يتفوق منافس على شبكتك الحالية بهامش واضح عبر عدة عينات متتالية، حتى لا تتقلب التوصية بسبب ضوضاء الإشارة أو توجيه النطاق 2.4/5 GHz.
كيف يعمل
التقييم سلبي ولا يفصلك عن الشبكة أبدًا. يأخذ في الاعتبار الإشارة والنطاق وازدحام القناة ومعيار WiFi وزمن الاستجابة المباشر (للشبكة التي تتصل بها). التفاصيل في docs/architecture.md؛ ودعم المنصات يقع خلف واجهة واحدة قابلة للتوصيل، موصوفة في docs/adding-a-platform.md.
تطبيق شريط القوائم (macOS)
تطبيق مصاحب لشريط القوائم يعرض القائمة المرتّبة مباشرةً و«السبب» في قائمة منسدلة — درجات ملوّنة حسب الجودة، وأشرطة إشارة، وتنبيه كهرماني عندما تكون شبكة ما أفضل بشكل دائم. يقرأ التطبيق roamr watch --json، لذا تبقى كل عمليات التقييم في CLI؛ ومثل CLI، يقدّم المشورة فقط ولا يبدّل الشبكة عنك أبدًا.
make app # build macos/Roamr.app (Swift, no Xcode needed)
make install-app # build and install it to /Applications
المنصات
| نظام التشغيل | المزوّد | الحالة |
|---|---|---|
| macOS | مساعد CoreWLAN موقّع عبر macwifi (ADR-0002) | يعمل (Apple Silicon، macOS 13+) |
| Windows | واجهة WLAN الأصلية (wlanapi.dll، ADR-0004) | يعمل (تم التحقق منه على جهاز فعلي؛ يتطلب تفعيل الموقع) |
| Linux | nmcli (NetworkManager) | منفَّذ (تم اختباره باستخدام بيانات تجريبية؛ بانتظار التحقق على جهاز) |
يتطلب macOS إذن الموقع لقراءة تفاصيل WiFi (يُمنح للمساعد المضمّن عند أول تشغيل)؛ لا يلزم حساب Apple مدفوع لبناء roamr أو تشغيله (انظر ADR-0002). يتطلب الاعتماد على macwifi إصدار Go 1.26+ ويستهدف Apple Silicon؛ ولا يبلّغ macOS عن وضع PHY، لذا تُتخطّى إشارة التقييم هذه هناك.
التطوير
go build ./... # build everything
go test ./... # run tests (no WiFi hardware needed)
go vet ./...
الترخيص
MIT. انظر LICENSE.