アセンブルリフトV 0 .リリース3


開発中の数ヶ月後、アセンブルリフトV 0.3リリースされており、貨物経由でご利用いただけます!🥳
あなたがそれを聞いたことがない場合、または単にアラームを必要とする.AssemblyLift クラウドネイティブアプリケーションを開発するためのオープンプラットフォームです.そのコアには、AssemblyFlightランタイムとAssemblylift CLIがあります.ランタイムは、WAYラムダなどのインフラストラクチャ上でコンパイルされたWebBassembly(WASM)を実行するための環境を提供しており、プラットフォームのよりユニークな側面の一つです.
CLIをインストールして、このポストで議論されていることを調査したいなら、走ることから始めてください
cargo install assemblylift-cli
CLIは現在LinuxとMacOSのみでサポートされています.

世界の現状
私はそれを正しく得るために何かを3回建てなければならないと言う起源を思い出すことができないadagesがあります.最初のパスでは、あなたが構築したいものを学んでいる.第二に、あなたはそれを構築する方法を学んでいます.次に、3番目の、あなたはそれを実際のためにビルドします.
それは決して簡単ではない(1.0への道は長い)しかし、V 0に入っている多くの仕事.3リリースは“表面の下に”、これはかなり基礎的なリリースので、話すこと.キー領域の多くは、再加工されたか、V 0のレッスンに基づいて完全に書き直されました.1とV 0.2は、現在と将来的に簡単に新しい機能を実装する.
それはまた、多くのユーザーがこれまでAssemblyFillの最も“完全な”提供をする改善に直面している!
以下でV 0の間の大きな変化を強調します.2とv 0.次のセクションで詳細に3を参照してください.最後に、プロジェクトがどこに向かっているかについてもう少し議論します.🙂

変更リスト
  • サービスと機能のための複数のインフラストラクチャプロバイダーをサポートする
  • 高山Linuxに基づく実験的ラムダ実行時間
  • 新しいTOML−HClトランスポータパイプライン
  • WASMメモリ(関数入力とiomod応答)にページングされる任意の大きなデータバッファのサポート
  • IOモジュールレジストリの配備とサポート
  • 最新バージョンへの重要な依存関係をバンプ!特にtokio 1Xは現在、ASML木箱生態系全体で使用されます.

  • 鍵変更

    インフラプロバイダー
    私は正直ですこれは、最も仕事を取って、簡単に最も見えるものである変化です😂
    でも!それは重要ではなかったわけではない.
    AWSラムダがまだ事実上のプロバイダである間、プロジェクトのゴールはいろいろな種類の基盤への配備をサポートしていました.
    これを達成するために、あなたのAssemblylift TMLをterraform HCLに翻訳したコードのほとんどは捨てられて、書き直される必要がありました.これは、上記の新しいトランスポーターに終わりました!
    新しいプロバイダの実装は、アルパインLinuxに基づいてラムダのための実験的なプロバイダでテストされました.このプロバイダのための最初の目的は、デフォルトのラムダOSと互換性がない、高速、LLVMコンパイルされたWASMバイナリをサポートすることでした.残念なことに、小さいイメージサイズにもかかわらず、私はDockerベースのラムダのためのコールドスタート時間Aがそれの価値があるためにあまりに高いということを発見しました.

    バッファとメモリ管理
    webassemblyのよく公開されている特徴は、メモリモデルであり、サンドボックス化された線形メモリである.これは本質的には、WASMコードがサンドボックスの内部で動作するように大きなバイト列を持っていることを意味しますが、ポインタや他の場所をエスケープする他の方法はありません.これの副作用はホストからwebassemblyに新しいデータを得るために、ホストは線形メモリの既知の領域に書き込む必要がある.
    以前のバージョンでは、AssemblyFillはホストにデータをバッファリングしませんでした.データがすべてのゲスト内の定義領域に収まることができない場合は、タフな運!
    明らかにそれは良いことではない.したがって、ホスト側バッファは任意のサイズに達することができます、そして、必要に応じてABI呼び出しを通してWASMの場所にページ化されます.応答がバッファリングされ、ゲストによって処理されるので、この変更は両方の関数入力を示します.

    IOモジュールレジストリ
    もう一つのBiggin 'は、年齢のために進行中でした.
    IO Modules またはioModsは、外部の機能へのアクセスをWASMのゲストを提供するために使用されるAssemblyLiftのユニークな機能です.
    v 0である.3 CLIは新しい公共のIOMODレジストリからIOMOD依存関係を取得することができます、一方、IOMODS自身は現在ZIPアーカイブされたパッケージで出荷されます.執筆時modules available on the registry が制限されますが、より多くの計画が残っています.

    今後の改善
    次のポイントリリースでは、コードのいくつかの領域での品質とエラー処理の改善に焦点を当て、APIのゲートウェイ/HTTPマクロの周りのDX *を改善するだけでなく.例えば、現時点ではhttp_ok! マクロはあなたの応答をJSONであると予想します.これはAPIアプリケーションに適していますが、より柔軟にしたいと思います.これは、将来的にAssemblyLiftで完全なスタック開発に私たちを開きます!😎
    長期的には、我々は直接アセンブルリフトで管理することができるものを拡張します.たとえば、関数パーミッションおよび/またはIAMポリシーは、現在のサービスtomlで設定できません.
    また、AWSラムダに加えてサポートする追加プロバイダを評価します.
    開発者経験

    もっと学ぶ
    今すぐAssemblyLiftについて学ぶために最善の方法はofficial documentation .
    また、経由で私たちに到達することができますElement マトリックスで.または下記のコメントで!