Upyo 0.2.0 リリースノート

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Upyo 0.2.0 のリリースをお知らせします。Upyo は、Node.js、Deno、Bun、およびエッジ関数にわたって統一された型安全な API を提供するクロスランタイムのメールライブラリです。SMTP、Mailgun、SendGrid、そして今回新たに Amazon SES を含む複数のメールプロバイダーを交換可能なトランスポートを通じてサポートし、コード変更なしでメールサービスを切り替えることができます。
このリリースでは、Amazon SES トランスポートのサポートと包括的な OpenTelemetry 統合という2つの重要な追加機能が導入されました。これらの機能により、トランスポートオプションが拡張され、ライブラリに本番環境対応の可観測性機能が追加されました。
Amazon SES トランスポート
Upyo は新しい @upyo/ses パッケージを通じて Amazon SES のサポートを追加しました。このトランスポートは、外部依存関係ゼロで AWS Signature v4 認証を提供し、Upyo のクロスランタイム互換性への取り組みを維持しています。この実装は、AWS アクセスキー認証情報と一時的な認証情報のためのセッションベースの認証の両方をサポートしています。
import { SesTransport } from "@upyo/ses";
import { createMessage } from "@upyo/core";
const transport = new SesTransport({
authentication: {
type: "credentials",
accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
},
region: "us-east-1",
});
const receipt = await transport.send(createMessage({
from: "sender@example.com",
to: "recipient@example.com",
subject: "Hello from SES",
content: { text: "Sent via Amazon SES!" },
}));
SES トランスポートには、リージョン設定のサポート、外部認証情報プロバイダーを通じた包括的な IAM ロール統合、効率的な一括送信機能が含まれています。他の Upyo トランスポートと同様に、Amazon の実績あるメールインフラストラクチャを活用して大規模な配信の信頼性を確保しながら、同じ一貫したインターフェースを提供します。
設定セット、メッセージタグ付け、リッチコンテンツ機能が完全にサポートされており、チームは SES の高度なトラッキングと分析機能を活用できます。このトランスポートは、Upyo ユーザーが期待するシンプルで統一された API を維持しながら、AWS 認証の複雑さを処理します。
OpenTelemetry 統合
新しい @upyo/opentelemetry パッケージは、デコレーターパターンを通じて任意の Upyo トランスポートに包括的な可観測性サポートを追加します。この実装は、既存のメール送信コードを変更することなく、分散トレーシング、メトリクス収集、およびインテリジェントなエラー分類を提供します。
import { createOpenTelemetryTransport } from "@upyo/opentelemetry";
import { SmtpTransport } from "@upyo/smtp";
// 既存のトランスポートを可観測性でラップする
const transport = createOpenTelemetryTransport(
new SmtpTransport({ host: "smtp.example.com" }),
{
serviceName: "email-service",
metrics: { enabled: true },
tracing: { enabled: true },
}
);
// 以前と全く同じように使用 - 可観測性は自動的に機能
await transport.send(message);
OpenTelemetry トランスポートは、メール操作をトレースとメトリクスで自動的に計測し、配信率、レイテンシー分布を追跡し、タイプ別に障害を分類します。既存の OpenTelemetry インフラストラクチャとシームレスに統合し、グローバルプロバイダーと異なる展開シナリオ向けのカスタム構成の両方をサポートします。
パフォーマンス最適化機能には、トレースとメトリクスの設定可能なサンプリングレートが含まれており、高スループット環境での最小限のオーバーヘッドを確保します。このトランスポートは、Disposable
/AsyncDisposable
サポートを通じて自動リソース管理を提供し、一括メール操作のための特殊なモニタリング機能を含んでおり、あらゆる規模の本番ワークロードに適しています。
参加方法
私たちは Upyo の改善に継続的に取り組んでおり、コミュニティからのフィードバックをお待ちしています。新しい Amazon SES トランスポートを試してみる、OpenTelemetry で可観測性を実装する、または既存のトランスポートを使用するなど、あなたのフィードバックはライブラリの将来を形作るのに役立ちます。
問題が発生した場合、機能リクエストがある場合、または貢献したい場合は、GitHub リポジトリにアクセスしてください。また、新しいトランスポート実装、ドキュメントの改善、さまざまなランタイム環境での統合体験についての議論も歓迎します。