Labs · سطح التطبيق
التطبيق المصنوع على المقاس، والمصنوع ليبقى.
ليس منتجًا أُعيد تشكيله لك — بل مبنيٌّ للميدان الذي يعمل عليه: تعليم، أو صناعة، أو أيّ قطاعٍ تأتي به. نواة Rust تعمل عند انعدام الإشارة تمامًا، أصيلةٌ على كل شاشة، وتصميمٌ تبقى فيه بياناتك لك.
ليس قالبًا بألوانك. بل برمجيةٌ مُشكَّلة على العمل الذي هي له حقًّا.
قاعة درس، أو خط إنتاج، أو فريق ميداني — التطبيق مكتوبٌ لكيفية حدوث ذلك العمل فعلاً، لا لعرضٍ توضيحي. القطاع يُشكّله، لا العكس.
قبوٌ، أو موقعٌ ناءٍ، أو منطقةٌ ميتة — لا يتوقّف العمل. الجهاز يحفظ الحقيقة، ويوائم مع الحافة لحظة عودة الإشارة.
لا حسابَ لا تستطيع مغادرته، ولا بياناتٍ محتجزة. النواة لك، والسجلّات لك، والمهندس الذي بناها هو من يجيب.
أربعة أرقام من تطبيقٍ مبنيٍّ ليبقى.
حرفة التطبيق الجادّ نواةٌ يحرسها المترجِم، تظلّ تعمل مع
انعدام الإشارة، وتعمل على كل ميدانٍ من مصدرٍ واحد للحقيقة.
يبقى الكود بالإنجليزية — اللغة العالمية للتقنية.
// the core of the app · typed, so a wrong state cannot be reached #[derive(Clone, Deserialize)] struct Job { id: Uuid, site: SiteId, state: State, // Scheduled → OnSite → Done — nothing else is legal readings: Vec<Reading>, synced: bool, // the device knows what the edge has not yet seen } impl Job { /// A job closes only once every required reading is in. fn can_close(&self) -> bool { matches!(self.state, State::OnSite) && self.readings.iter().all(Reading::valid) } }
// works at zero bars · the floor does not wait for a signal fn record(&mut self, r: Reading) { self.readings.push(r.clone()); self.queue.push(Op::Add(r)); // kept on the device, durable self.synced = false; } /// When the signal returns, the device reconciles — in order, idempotent. async fn reconcile(&mut self, edge: &Edge) -> Result<()> { for op in self.queue.drain(..) { edge.apply(op).await?; // the edge is the record; the device, the witness } self.synced = true; Ok(()) }
# one core, every floor it must run on [targets] ios = "aarch64-apple-ios" # a thin Swift shell over the Rust core android = "aarch64-linux-android" # a thin Kotlin shell over the same core desktop = "x86_64 · aarch64" # Windows · macOS · Linux # the logic is written once, in Rust. only the shell changes per floor. # Swift and Kotlin carry the screen; Rust carries the truth.
لماذا يتفوّق تطبيقٌ مبنيٌّ لميدانك على منتجٍ أُعيد تشكيله ليناسبه.
المنتج المُعاد تشكيله لا يمكن أن يُصنع لميدانك — لقد صُنع قبل أن يُعرَف ميدانك. والتطبيق الذي يعمل عبر الإنترنت فقط لا يمكن الوثوق به حيث تموت الإشارة — فالانتظار مبنيٌّ فيه. لهذا نكتب نواة Rust واحدة، ونحرسها بالمترجِم، ونوقّعها بأنفسنا — ولهذا نعرض ما نقيسه، لا سعرًا جاهزًا.
قبل أن تُكتَب سطرٌ واحد، كيف يُصان عملك. هذا الجزء غير قابل للتفاوض.
اتفاقية عدم الإفشاء هي الأصل هنا, لا بندٌ إضافي. ما تشاركه يقرؤه مهندسٌ واحد لا غير — ولا شيء يُباع أو يُشارَك أو يُمرَّر.
الاعتمادات والسجلّات تبقى في بيتك، بأدنى صلاحية. لا نحتفظ بأيّ نسخة لا نحتاجها، ولا شيء يغادر متناولك دون كلمتك.
ما يعمل في بيتك هو لك لتقرأه وتدقّقه — لا صندوق أسود عليك أن تثق به دون أن تراه. غرفة المحرّك تبقى لنا؛ وما تشغّله أنت هو لك.
سطران — الميدان الذي يعمل عليه، والعمل الذي يجب أن يحمله. نقرؤهما بأنفسنا ونجيب بأنفسنا.
هي الآن على شاشةٍ في Zürich — لا في طابور، ولا في تذكرة. المهندس الذي سيبني هذا يقرؤها، ويكتب الردّ بنفسه.
·