我可以在 Linux 上使用 Perfect 上的 Realm 吗?
Will I be able to use Realm on Linux, with Perfect?
Perfect - https://www.perfect.org - 是一种新的 Web 服务器,它允许您在服务器端使用与在设备上相同的语言。它将在今年年底前发布时与 Swift 的 Linux 版本兼容 - 大概是因为它只使用 Swift 的标准库,
它有 MongoDB、MySQL、PostgreSQL 的连接器。
目前,我正在 Swift 中使用 Realm 数据库开发应用程序。我也可以在服务器端使用 Realm 吗?它只使用 Swift 标准库吗?
到目前为止,Realm 为 Cocoa 相关开发提供了两个绑定:Realm Objective-C 和 Realm Swift。后者基于前者和围绕 Objective-C API 的浅层包装器,采用 Swift 标准库中的类型和协议并公开更方便的 API。使用该架构而不是纯 Swift 绑定的原因是 Swift 不允许接口 C++ 代码,但 Realm 的底层存储引擎基于此。
这意味着即使使用 Realm Swift,你也有 Foundation 作为传递依赖,因为我们依赖它,例如RLMObject
使用键值编码,与 KVO 互操作,使用 Foundation 的值类型(NSNumber
、NSArray
、…)。
所以假设 Linux 版本的 Swift 不会有 Linux 兼容的 Foundation 发行版,在 Linux 上使用 Realm 将需要"pure" Swift Realm 的绑定,这还不可能,一个替代的 Objective-C 绑定,它避免了 Foundation,或者 Foundation 的一个成熟的替代实现,其中 GNUstep 可能是候选人,但这完全没有经过我们这边的测试。
更新#1
Swift 与基金会 API 的 Swift 实现存根一起开源,作为 OS API 的垫片,因此它可以在 Linux 以及 Apple Foundation 不可用的其他平台。从那时起,这个存根就被项目贡献者的实际实现所填充,并且是 Swift 3 版本的一部分,因此它可以用于 纯 Swift 项目 .
然而,这并没有解决领域 Swift 是 不纯 Swift 并且基于领域 Objective-C 的一般问题.所以它依赖于Objective-C运行时间和基金会的可用性。
更新#2
我们最近宣布了 Realm Mobile Platform,您可以 运行 本地或 public 云端。所以这使得在 Linux 上使用 Realm 成为可能。但是到目前为止,服务器端访问仅在具有 Node.js 绑定的企业版上受支持。
Perfect - https://www.perfect.org - 是一种新的 Web 服务器,它允许您在服务器端使用与在设备上相同的语言。它将在今年年底前发布时与 Swift 的 Linux 版本兼容 - 大概是因为它只使用 Swift 的标准库,
它有 MongoDB、MySQL、PostgreSQL 的连接器。
目前,我正在 Swift 中使用 Realm 数据库开发应用程序。我也可以在服务器端使用 Realm 吗?它只使用 Swift 标准库吗?
到目前为止,Realm 为 Cocoa 相关开发提供了两个绑定:Realm Objective-C 和 Realm Swift。后者基于前者和围绕 Objective-C API 的浅层包装器,采用 Swift 标准库中的类型和协议并公开更方便的 API。使用该架构而不是纯 Swift 绑定的原因是 Swift 不允许接口 C++ 代码,但 Realm 的底层存储引擎基于此。
这意味着即使使用 Realm Swift,你也有 Foundation 作为传递依赖,因为我们依赖它,例如RLMObject
使用键值编码,与 KVO 互操作,使用 Foundation 的值类型(NSNumber
、NSArray
、…)。
所以假设 Linux 版本的 Swift 不会有 Linux 兼容的 Foundation 发行版,在 Linux 上使用 Realm 将需要"pure" Swift Realm 的绑定,这还不可能,一个替代的 Objective-C 绑定,它避免了 Foundation,或者 Foundation 的一个成熟的替代实现,其中 GNUstep 可能是候选人,但这完全没有经过我们这边的测试。
更新#1
Swift 与基金会 API 的 Swift 实现存根一起开源,作为 OS API 的垫片,因此它可以在 Linux 以及 Apple Foundation 不可用的其他平台。从那时起,这个存根就被项目贡献者的实际实现所填充,并且是 Swift 3 版本的一部分,因此它可以用于 纯 Swift 项目 .
然而,这并没有解决领域 Swift 是 不纯 Swift 并且基于领域 Objective-C 的一般问题.所以它依赖于Objective-C运行时间和基金会的可用性。
更新#2
我们最近宣布了 Realm Mobile Platform,您可以 运行 本地或 public 云端。所以这使得在 Linux 上使用 Realm 成为可能。但是到目前为止,服务器端访问仅在具有 Node.js 绑定的企业版上受支持。