Chromium Embedded Framework

Chromium Embedded Framework (CEF) は、オープンソースの、他のアプリケーションからChromiumを使用できるようにしたソフトウェアフレームワークである。、CEFが提供している機能はHTML、CSS、JavaScriptといったWeb系の技術をUIで使用できるようにすることである。

C、C++、Go、Java、Pythonなど、様々な言語のためにライブラリやバインディング (いわゆるラッパーライブラリ)がある。

 概要 
Chromium Embedded Frameworkには、以前にメンテナンスされていたCEF 1と現行のCEF 3のバージョンが存在する。 しかし、CEF 2はChromium Content APIの登場によって開発が停止したため存在しない。

CEF 1はシングルプロセスで、Chromium WebKit APIに基づいた実装だった。 しかし、開発が続かなかった。

CEF 3はマルチプロセスで、Chromium Content APIに基づいた実装である。メインスレッドとレンダープロセス(BlinkとV8)の通信に非同期通信を用い、Google Chromeに近いパフォーマンスを誇った。 2022年6月の時点で、PPAPIの削除等による理由からPPAPIのメンテナンスはなされていない。これにはChromeの従来のアプリケーションや、ネイティブクライアントサポートのようなChromiumプロジェクトのメインストリームのものも含まれる。しかし、ChromiumのPDFiumによるPDF viewerのサポートは続いている。また、シングルプロセスでの実行はサポートされていないが、デバッグ目的で残されている。

2019年3月16日、バージョン名の付け方が、リリース「CEF 73.1.3+g46cf800+chromium-73.0.3683.75」のような形式から変わった。参考に、同年3月14のリリース名は「CEF 3.3683.1920.g9f41a27」だった。どちらのリリースも、Chromiumのバージョン「73.0.3683.75」をベースとしたものだが、新しいバージョン名の付け方はベースとしたChromiumのバージョン名と同じバージョン名を使用している。

CEFにはCefClientと呼ばれる、C++で記述された、WinAPI、Cocoa、GTK (プラットフォームによって異なる) などを使用したサンプルアプリケーションや、いくつか機能デモが付属している。 

なお、ドキュメントはヘッダファイルのあるincludeディレクトリと、リポジトリ内のwikiページにある。

 言語バインディング 
CEFが利用できる本来の言語はCとC++であり、公式が提供するバインディングはJavaだけであるが、いくつかのプロジェクトがバインディングをメンテナンスしている。

ただし、長くメンテナンスされていないものや、リポジトリがアーカイブされてしまっているものもある。

 Delphi (CEF1) – DCEF 1
 Delphi (CEF3) – DCEF 3
 Delphi (CEF3) – CEF4Delphi
 Dyalog APL (CEF3) – HTMLRenderer
 Free Pascal (CEF3) - fpCEF3
 Go (CEF3) – CEF2go
 Java (CEF3) – Java Chromium Embedded (JCEF)
 .NET (CEF1, CEF3) – CefSharp
 .NET (CEF1) – CefGlue
 .NET/Mono (CEF3) – Xilium.CefGlue
 .NET (CEF3) – ChromiumFX
 Python (CEF1, CEF3) – CEF Python
 Swift (CEF3) – CEF.swift

これ以外にも、WebKitX CEF3 ActiveXという製品があり、いくつかの言語からも使用できる。

 CEFを使用したアプリケーションの例 
 4D – RDB管理用IDE
 Adobe
 Adobe Acrobat
 Adobe Illustrator – vector graphics editor
 Adobe Creative Cloud
 Adobe Dreamweaver –  GUIにAdobe Chromium Embeddedを使用
 Adobe Edge Animate – マルチメディア制作ツール
 Adobe Edge Reflow – Webデザインツール
 Adobe Brackets – 以前はクローズドソースだったIDE
 AOL Instant Messenger – インスタントメッセンジャー
 alt:V -  Grand Theft Auto Vのためのマルチプレイヤーエンジン
 Amazon Music Player – Amazon Musicの公式プレーヤー
 AOL Desktop
 Autodesk Inventor – 3Dデザインツール: CEFを「マイホーム」機能に使用
 Battle.net App – Battle.netの公式クライアント
 BeamNG.drive – UIレンダリングにCEFを使用
 Bitdefender Safepay Browser – インターネットセキュリティーソフト「Bitdefender」の一部
 Brackets – 現在はオープンソースであるIDE
 Desura client – Desuraの公式クライアント
 Dish World IPTV – 映像ストリーミングのプラットフォーム
 Dyalog APL – CEFをユーザーコマンドの、]HTML, ]Plot, ]APLCartに使用
 Epic Games Launcher – Epic Games Storeの公式クライアント
 Eve Online launcher –  Eve Onlineの公式ランチャー
 ExpanDrive – ネットワークストレージ等のクライアント
 Foxmail – Tencentのメールクライアント
 GOG Galaxy –  GOG.comの公式クライアント
 Google Web Designer
 Grand Theft Auto Online – Grand Theft Auto Vのためのマルチプレイヤーエンジン
 Intel AppUp Encapsulator
 KKBox – 音楽配信プラットフォーム
 League of Legends launcher – League of Legendsの公式ランチャー
 LiveCode – マルチプラットフォーム向けのアプリ開発ソフト
 LockDown Browser - セキュアなブラウザ
 MATLAB – CEFをuifiguresに使用
 MediaMan – CD、DVD、本などのための蔵書管理アプリ
 Minecraft Launcher – Minecraftの公式ランチャー
 Multi Theft Auto – Grand Theft Auto: San Andreasのためのマルチプレイヤーエンジン
 OBS Studioのブラウザプラグイン- 配信、録画用ソフトウェア
 OnlyOffice – オフィススイートソフト
 PHP Desktop
 QuarkXPress – JavaScriptのサポート
 QQ – インスタントメッセンジャー
 RAGE Multiplayer – Grand Theft Auto Vのためのマルチプレイヤーエンジン
 Rockstar Games Launcher – Social Clubの公式クライアント
 Second Life – メタバース
 Sling TV – Dish NetworkによるIPテレビサービス
 Spotify Desktop Client – 音楽配信プラットフォーム
 StarUML – UMLエディタ
 Steam client – Steamの公式クライアント
 Trend Micro Internet Security – ウイルスセキュリティソフト
 Ubisoft Connect client – Ubisoft Connectの公式クライアント
 Uniface
 Unity – ゲームエンジン
 Unreal Engine – ゲームエンジン
 Xojo – WindowsにおいてHTMLViewerにCEFを使用

 関連項目 

 Electron
 Qt WebEngine
 XULRunner

 出典・脚注 

 外部リンク 


 GitHub上のリポジトリ

Category:C++でプログラムされた自由ソフトウェア
Category:Google Chrome
Category:クロスプラットフォームのソフトウェア