SDK
技術堆疊每層都有 SDK
給 iOS、Android 和 Web 的用戶端 SDK;給 Go、Node.js、Python 和 Java 的伺服器端 SDK。它們共用同一個保證:FortressFlag 出狀況也絕不會拖垮你的應用程式 - 每一次讀取都會解析成一個值,而不是丟出例外。
用戶端 SDK
iOS (Swift)
swift · spm按裝置取得 flag,並帶一份持久的本地快取:每一次讀取先退回這台裝置最後看到的值,再退回 false - 它還會產生按裝置計費所依據的那個穩定、尊重隱私的裝置識別碼,這個識別碼在你的應用程式家族中共用,而且絕不從硬體識別碼推導。
Android (Kotlin)
kotlin · minSdk 26同樣的持久快取和同樣的失效安全退回鏈,以 Kotlin 原生實作:isEnabled 這類方法從不丟出例外。它遵循和 iOS 相同的跨平台裝置識別契約 - 一個隨機的假名識別碼,絕不從硬體 ID 推導。
Web / JavaScript
typescript · zero deps給瀏覽器用的零相依 TypeScript:沒有呼叫會丟出例外,也沒有 promise 會 reject - 故障、斷線和廣告攔截器都會解析成一個值。用 navigator.webdriver 表明自己是自動化的瀏覽器照樣服務,但從不計費。
伺服器端 SDK
Go
go · zero deps用 ffs_ 伺服器金鑰輪詢 ruleset 匯出,並在行程內本地評估 - 每次 flag 判斷都不走網路,評估從不回傳錯誤,也從不 panic。
Node.js
typescript · esm · node 22+同樣的契約和同樣的本地評估,用 TypeScript 寫成。只有 ESM,零執行時相依 - Node 22+ 上的 CommonJS 依然可以用 require() 載入它。輪詢器絕不會在你的程式碼跑完之後還讓行程活著。
Python
pure stdlib · 3.11+純標準函式庫,同步 API 在 asyncio 應用程式裡也是安全的 - 評估就是一次記憶體讀取,沒有任何東西要 await。輪詢器是常駐執行緒,絕不擋住直譯器結束。
Java
java 17+ · zero deps零相依,連 JSON 也是 - 有界的剖析器就住在 SDK 裡,你的相依樹裡不會多出任何東西。boolValue 這類 getter 從不丟出例外,常駐輪詢器也絕不擋住 JVM 結束。