我可以在Linux上使用Realm吗?

时间:2015-11-24 11:38:03

标签: ios linux swift realm perfect

完美 - https://www.perfect.org - 是一个新的Web服务器,它允许您在服务器端使用与在设备上使用相同的语言。它将在今年年底之前发布时兼容Swift的Linux版本 - 大概是因为它只使用了Swift的标准库,

它有MongoDB,MySQL,PostgreSQL的连接器。

目前,我正在使用Swift中的Realm数据库开发应用程序。我是否也可以在服务器端使用Realm?它只是使用Swift标准库吗?

1 个答案:

答案 0 :(得分:4)

到目前为止,Realm为Cocoa相关的开发提供了两个绑定:Realm Objective-C和Realm Swift。后者基于前者和Objective-C API的浅层包装器,采用Swift标准库中的类型和协议,并公开更方便的API。这种架构而不是纯Swift绑定的原因是Swift不允许接口C ++代码,但Realm的底层存储引擎就是基于此。 这意味着即使使用Realm Swift,您也可以使用Foundation作为传递依赖,因为我们依赖于它。使用键值编码的RLMObject,与KVO互操作,使用Foundation的值类型(NSNumberNSArray,...)。

因此,假设在Linux版本的Swift中不能使用与Linux兼容的Linux发行版,那么在Linux上使用Realm将需要一个纯粹的"快速绑定Realm,这是不可能的,一个替代的Objective-C绑定,它避免了Foundation,或者基金会的成熟替代实现,其中GNUstep可能是候选者,但这完全是未经测试的我们这边。

更新#1

Swift是开源的,与基金会API的Swift实现存根作为OS API的垫片,因此它可以在Linux和其他没有Apple基金会的平台上可移植使用。从那时起,该存根被项目的贡献者实际实现,并且是Swift 3版本的一部分,因此它可以用于纯Swift项目

然而,这并没有解决一般问题,即Realm Swift 不是纯粹的Swift 并且基于Realm Objective-C。所以它依赖于Objective-C运行时和Foundation的可用性。

更新#2

我们最近宣布了Realm Mobile Platform,您可以在本地或公共云上运行。因此,这确实可以在Linux上使用Realm。但到目前为止,Enterprise Edition上的服务器端访问仅受Node.js绑定的支持。