4

Perfect - https://www.perfect.org - は新しい Web サーバーで、サーバー側でもデバイス上と同じ言語を使用できます。今年の終わりまでにリリースされた場合、Swift の Linux バージョンと互換性があります。おそらく、Swift の標準ライブラリを使用しているためです。

MongoDB、MySQL、PostgreSQL 用のコネクタがあります。

現在、Swift で Realm データベースを使用してアプリを開発しています。サーバー側でも Realm を使用できますか? Swift 標準ライブラリを使用しているだけですか?

4

1 に答える 1

4

Realm はこれまで、Cocoa 関連の開発用に Realm Objective-C と Realm Swift の 2 つのバインディングを提供しています。後者は前者に基づいており、Objective-C API の浅いラッパーであり、Swift 標準ライブラリから型とプロトコルを採用し、より便利な API を公開しています。純粋な Swift バインディングの代わりにそのアーキテクチャを使用する理由は、Swift が C++ コードとのインターフェイスを許可していないためですが、Realm の基盤となるストレージ エンジンはそれに基づいています。これは、Realm Swift を使用しても、Foundation を推移的な依存関係として持つことを意味します。たとえばRLMObject、Key-Value コーディング、KVO との相互運用、Foundation の値の型 ( NSNumberNSArray、…) の使用に依存しています。

そのため、Swift の Linux バージョンを同梱する Linux 互換の Foundation ディストリビューションが出荷されないと仮定すると、Linux で Realm を使用するには Realm の「純粋な」Swift バインディングが必要になりますが、これはまだ不可能であり、代替の Objective-C バインディングです。 、Foundation、またはGNUstepが候補になる可能性のあるFoundationの成熟した代替実装を回避しますが、これは私たちの側では完全にテストされていません.

更新 #1

Swift は、OS API のシムとして Foundation の API の Swift 実装スタブと共にオープンソース化されたため、Apple の Foundation が利用できない Linux やその他のプラットフォームで移植可能に使用できます。このスタブはそれ以来、プロジェクトへの貢献者による実際の実装で満たされ、Swift 3 リリースの一部であるため、純粋な Swift プロジェクトに使用できます。

ただし、Realm Swift は純粋な Swift ではなく、Realm Objective-C に基づいているという一般的な問題は解決されません。そのため、Objective-C ランタイムと Foundation の可用性に依存しています。

アップデート #2

最近、オンプレミスまたはパブリック クラウドで実行できるRealm Mobile Platformを発表しました。これにより、Linux で Realm を使用できるようになります。ただし、サーバー側のアクセスは、これまでのところ、Node.js バインディングを使用する Enterprise Edition でのみサポートされています。

于 2015-11-26T10:23:08.087 に答える