# تثبيت SDK

اختر مدير الحزم الأصلي للغتك. تستخدم Go وJavaScript وC/C++ مباشرةً حزمَ SDK الأساسية لـGo وJS/WASM وCGo. أما حزم اللغات الأخرى فتغلّف هذه التنفيذات نفسها.

**توفّر الإصدار:** الاسم المعتمد `@urnetwork/sdk` وحزم اللغات الجديدة بانتظار النشر. والأوامر أدناه هي عقد التثبيت لذلك الإصدار؛ ويشرح دليل كل لغة أيضاً بناء الحزم محلياً. وتحتاج أمثلة المقابس إلى إصدار يتضمن واجهة API الجديدة للمقابس.

| اللغة | التثبيت الأصلي | الدليل |
| --- | --- | --- |
| C | `vcpkg add port urnetwork-sdk` | [دليل C](/docs/examples/c) |
| C++ | `vcpkg add port urnetwork-sdk` | [دليل C++](/docs/examples/cpp) |
| C# | `dotnet add package URnetwork.SDK` | [دليل C#](/docs/examples/csharp) |
| Go | `go get github.com/urnetwork/sdk/v2026@latest` | [دليل Go](/docs/examples/go) |
| Java | `implementation("io.ur:urnetwork-sdk:<version>")` | [دليل Java](/docs/examples/java) |
| JavaScript | `npm install @urnetwork/sdk` | [دليل JavaScript](/docs/examples/javascript) |
| Kotlin | `implementation("io.ur:urnetwork-sdk:<version>")` | [دليل Kotlin](/docs/examples/kotlin) |
| Python | `pip install urnetwork-sdk` | [دليل Python](/docs/examples/python) |
| Ruby | `gem install urnetwork-sdk` | [دليل Ruby](/docs/examples/ruby) |
| Rust | `cargo add urnetwork-sdk` | [دليل Rust](/docs/examples/rust) |
| Swift | `.package(url: "https://github.com/urnetwork/sdk-swift", exact: "<version>")` | [دليل Swift](/docs/examples/swift) |
| TypeScript | `npm install @urnetwork/sdk` | [دليل TypeScript](/docs/examples/typescript) |

هذه الأوامر، من دون أي تحديد للإصدار، تختار الإصدارات الافتراضية/المستقرة. ولإصدارات المعاينة، استخدم `npm install @urnetwork/sdk@nightly` أو `pip install --pre urnetwork-sdk` أو `dotnet add package URnetwork.SDK --prerelease` أو `gem install urnetwork-sdk --pre`. ويستطيع Cargo وMaven وSwiftPM تثبيت إصدار المعاينة المحدد بعينه. وأسماء حزم المعاينة هي أسماء الحزم المستقرة نفسها.

## Java وKotlin على Android

استخدم `io.ur:urnetwork-sdk-android:<version>` بدل إحداثيات حزمة JVM لسطح المكتب. فملف AAR لنظام Android مبنيّ بأداة gomobile، بينما تستخدم Java/Kotlin على سطح المكتب JNA فوق وقت تشغيل CGo. وتستخدم Swift حزمة XCFramework الموجودة أصلاً لمنصات Apple.

## محتويات الحزم

تتضمن ملفات wheel لـPython، وحزم gem لـRuby، وحزم NuGet، وحزم JVM لسطح المكتب مكتباتِها الأصلية المدعومة. أما حزمة crate الخاصة بـRust فتنزّل وقتَ البناء ملفاً أصلياً مثبَّتَ الإصدار ومتحقَّقاً من مجموعه الاختباري، وتضمّنه في الملف التنفيذي. ولا يحتاج مستخدمو الحزم إلى مصرّف Go ولا إلى تنزيل DLL يدوياً. ويقتصر الدعم على المنصات المضمّنة في ذلك الإصدار؛ وتذكر حزم Linux الحدَّ الأدنى الذي تتطلبه من libc.

وتحتوي حزمة npm وقتَ تشغيل Go/WASM المقترن بها وتصريحاتِ TypeScript، مع أمثلة قابلة للتشغيل لـNode وللمتصفح. وكلاهما يستخدم جهاز Device مستضافاً مُعَدّاً. وليس لواجهة fetch الأصلية في المتصفح مصنعُ مقابس مخصص؛ فانظر دليل تكامل HTTP الخاص باللغة لتجد محوّل طلبات Axios ومثال Direct Sockets.

## الأمثلة وسلوك المقابس

افتح [متصفّح الأمثلة](/docs/examples) لتجد لكل لغة ملف README للتثبيت، ودليل التشغيل `socket/README.md`، وملفات المصدر القابلة للتنفيذ. واقرأ [دليل المقابس](/docs/socket) لتعرف الفرق بين مقبس نواة النظام ومقبس Device، ومن ذلك احتمال التسليم المكرر حين يسابق UDP بأول مخطط بيانات (datagram) عبر IPv4 وIPv6.

وللتثبيت من المصدر، وتثبيت الإصدارات، ومديري الحزم البديلة، استخدم أدلة اللغات أعلاه. وتُنشر وصفات C/C++ في مستودع Conan بعيد (remote) أو في سجل Git لأداة vcpkg، تابعَين لنا ومُعَدَّين؛ فأضف ذلك المستودع البعيد أو السجل مرة واحدة قبل الأوامر أعلاه. أما الإدراج في المجموعات العامة الأصلية (upstream) فيتطلب قبول القائمين على صيانتها. وتتضمن أدلة اللغات هذا الإعداد، وتثبيتَ أرشيف CMake محلياً.
