Labs · permukaan aplikasi
Aplikasi yang dibina khas untuk anda, dan untuk kekal.
Bukan produk yang dibentuk semula untuk anda — tetapi yang dibina untuk lapangan kerja tempat ia berjalan: pendidikan, industri, atau mana-mana sektor yang anda bawa. Teras Rust yang berfungsi tanpa satu bar isyarat, natif pada setiap skrin, dan reka bentuk yang memastikan data anda kekal milik anda.
Bukan templat dengan warna anda. Perisian yang dibentuk mengikut kerja yang sebenarnya hendak dilakukan.
Sebuah bilik darjah, satu barisan kilang, satu krew di lapangan — aplikasi ditulis mengikut cara kerja itu benar-benar berlaku, bukan untuk demo. Sektor itulah yang membentuknya, bukan sebaliknya.
Sebuah ruang bawah tanah, tapak pedalaman, kawasan tanpa liputan — kerja tidak terhenti. Peranti menyimpan kebenarannya, dan menyelaraskannya dengan edge sebaik sahaja isyarat kembali.
Tiada akaun yang tidak boleh anda tinggalkan, tiada data yang ditahan sebagai tebusan. Terasnya milik anda, rekodnya milik anda, dan jurutera yang membinanya ialah orang yang bertanggungjawab.
Empat angka daripada aplikasi yang dibina untuk bertahan.
Seni aplikasi yang serius ialah teras yang dikawal oleh pengkompil, yang terus berfungsi tanpa isyarat, dan yang berjalan di setiap lapangan kerja daripada satu sumber kebenaran.
// 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.
Mengapa aplikasi yang dibina untuk lapangan kerja anda mengalahkan produk yang dibentuk semula untuk menyesuaikan diri dengannya.
Produk yang dibentuk semula tidak mungkin dibuat untuk lapangan kerja anda — ia dibuat sebelum lapangan kerja anda diketahui. Aplikasi yang hanya berfungsi dalam talian tidak mungkin dipercayai di tempat isyarat mati — penantian itu sudah terbina di dalamnya. Itulah sebabnya kami menulis satu teras Rust, mengawalnya dengan pengkompil, dan menandatanganinya sendiri — dan sebabnya kami memberikan harga berdasarkan apa yang kami ukur, bukan harga siap di rak.
Sebelum satu baris pun ditulis, inilah cara kerja anda dijaga. Bahagian ini tidak boleh dirunding.
NDA ialah kebiasaan di sini, bukan jualan tambahan. Apa yang anda kongsikan dibaca oleh satu jurutera dan tiada orang lain — tiada apa-apa yang dijual, dikongsi atau diserahkan kepada pihak lain.
Kelayakan akses dan rekod kekal di dalam rumah anda, di bawah hak akses minimum. Kami tidak menyimpan salinan yang tidak kami perlukan, dan tiada apa-apa yang keluar daripada jangkauan anda tanpa kebenaran anda.
Apa yang berjalan di dalam rumah anda adalah milik anda untuk dibaca dan diaudit — tiada kotak hitam yang perlu anda percayai tanpa melihatnya. Bilik enjin kekal milik kami; apa yang anda jalankan adalah milik anda.
Dua baris — lapangan kerja tempat ia berjalan, dan kerja yang perlu dibawanya. Kami sendiri yang membacanya dan kami sendiri yang menjawab.
Ia sudah berada pada satu skrin di Zürich — bukan dalam barisan menunggu, bukan dalam tiket. Jurutera yang akan membinanya membacanya sendiri, dan membalas sendiri.
·