Bazel を使用しているユーザー

問題を報告 ソースを表示 ナイトリー · 8.0 · 7.4 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

このページでは、Bazel を使用していることが確認されている企業と OSS プロジェクトを紹介します。これは推奨を意味するものではありません。

Bazel を使用している企業

acqio

Acqio は、中小規模の販売者向けに支払いプロダクトとサービスを提供するフィンテック企業です。Acqio にはいくつかの Monorepo があり、Kubernetes とともに Bazel を使用して、高速で信頼性の高いマイクロサービスを提供しています。

Adobe

Adobe は、GitOps を活用した継続的な Kubernetes デプロイ用の Bazel ルールをリリースしました。

Asana

Asana は、チームが仕事を追跡できるように設計されたウェブ アプリケーションとモバイルアプリです。次のように記載されています。

Bazel により、Asana のすべてのビルドとテストの信頼性、安定性、速度が向上しました。キャッシュが正しくないためにクリーンアップする必要がなくなりました。

Ascend.io

Ascend は、大規模なデータセット分析ソリューションを提供するパロアルトのスタートアップです。モットーは「ビッグデータは難しい。

ASML

ASML は半導体業界のイノベーション リーダーです。リソグラフィーによるシリコン上のパターンの量産に必要なハードウェア、ソフトウェア、サービスをチップメーカーに提供しています。

Beeswax

Beeswax は、リアルタイム入札サービスを提供するニューヨークに拠点を置くスタートアップです。Bazel は、Jenkins ベースの継続的インテグレーションとデプロイ フレームワークを強化します。Beeswax は、非常に高速で正確であり、多くの言語とプラットフォームで十分にサポートされているため、Bazel を気に入っています。

Braintree

PayPal の子会社である Braintree は、ウェブサイトとアプリ向けの決済ソリューションを開発しています。内部ビルドの一部に Bazel を使用しており、Paul Gross は Bazel への切り替えの様子に関する優れた記事を投稿しています。

Canva

Canva は Bazel を利用して、Java、TypeScript、Scala、Python などの大規模な多言語コードベースを管理しています。Bazel への移行により、平均 CI ビルド時間が 5 ~ 6 倍短縮されるなど、開発者とコンピューティング インフラストラクチャの効率が大幅に向上しました。また、同社では引き続き、高速で再現可能かつ標準化されたソフトウェア ビルドの基盤となっています。

CarGurus

CarGurus は、世界で最も信頼性が高く透明性の高い自動車マーケットプレイスを構築することを使命としています。同社は Bazel を使用して、多言語の Monorepo を構築しています。

コンパス

Compass は、テクノロジーを活用した不動産プラットフォームです。不動産、テクノロジー、ビジネスの専門家からなるエリート チームを擁する Zillow は、家探しをする人々にとって最良かつ最も信頼できる情報源を目指しています。

Databricks

Databricks は、Apache Spark™ をベースとしたクラウドベースの統合ワークスペースを提供します。

Databricks のコードベースは Monorepo で、ほとんどのサービスを支える Scala コード、フロントエンド UI 用の JavaScript、スクリプト用の Python、インフラストラクチャを構成する Jsonnet などが含まれています。Monorepo には 100 万行の Scala が含まれていますが、内部のコードは高速でスナップしています。(Databricks で Bazel を使用した高速な Scala ビルド

Dataform

Dataform は、データチームにスケーラブルな分析を提供します。1 つのモノレポにいくつかの NPM パッケージとドキュメント サイトを維持し、すべてを Bazel で処理しています。

Bazel に移行した後、次のような多くのメリットが報告されています。

  • CI の高速化: リモートビルド キャッシュを有効にすることで、平均ビルド時間を 30 分から 5 分に短縮しました(リポジトリ全体)。
  • ローカル開発の改善: 実行し忘れるランダムな bash スクリプトがなくなり、増分ビルドが数分から数秒に短縮
  • デベロッパーのセットアップ時間: 新しいエンジニアは、bazel、docker、JVM の 3 つの依存関係だけですべてのコードをビルドできます。チームに最後に加わったエンジニアは、新品の空のノートパソコンで 30 分以内にすべてのコードをビルドできました。

Deep Silver FISHLABS

Deep Silver FISHLABS は、ハイエンドの 3D ゲームを開発するデベロッパーです。内部ビルドツールのベースとして、特にすべての 3D アセットのベイクとデプロイに、C++/Python/Go/C で Bazel を使用しています。

Dropbox

Dropbox では、Bazel は分散ビルド環境とテスト環境の重要なコンポーネントです。Google では、Bazel を使用して TypeScript/Python/Go/C/Rust を組み合わせて、信頼性の高い本番環境リリースを作成しています。

Engel & Völkers

Engel & Völkers AG は、一連のフランチャイズ オフィスを通じて不動産取引に関連するサービスを提供する、ドイツの非公開会社です。

社内のプロジェクトの 1 つでは、コンパイル時間が 11 分から約 1 分に短縮されました。これは素晴らしい成果であり、現在、より多くのプロジェクトに Bazel を導入する取り組みを進めています。(Google Cloud Build と Bazel を試す)。

Etsy

Etsy は、ハンドメイドやヴィンテージのアイテムや用品、工場で製造されたユニークなアイテムに特化した e コマース ウェブサイトです。

同社は Bazel を使用して、Java ベースの検索プラットフォームをビルドしてテストしています。Bazel は、ベアメタル サーバー用のパッケージと繰り返し可能な Docker イメージの両方を生成します。

Evertz.io

Evertz.io は、Evertz Microsystems が作成した、放送メディア業界に世界中で費用対効果の高いマルチリージョン サービスを提供するマルチテナント サーバーレス SaaS プラットフォームです。

ウェブサイトは、Angular と Bazel のワークフロー(ソース)を使用して完全にビルドされ、デプロイされています。

FINDMINE

FINDMINE は、機械学習を使用して、現在手動で面倒な商品キュレーション プロセスをスケーリングする、小売業界向けの自動化技術です。Google では、Bazel を使用して Python パッケージのビルド、テスト、デプロイのプロセス全体を自動化しています。

Flexport

Flexport は、テクノロジーを活用したグローバルな貨物運送業者です。世界貿易を誰にとっても簡単にすることを使命としています。Flexport では、Bazel を使用して Java/JavaScript サービスとクライアント ライブラリをビルド/テストし、protobuf 定義から Java コードと Ruby コードを生成しています。Bazel で個々の JUnit 5 テストを個別に実行する方法についての記事

Foursquare

Foursquare の使命は、デジタル空間と物理的な場所の間に有意義な橋を架ける技術を構築することです。Google では、Bazel を使用して、複雑なコード生成プロセスやコンテナビルド プロセスなど、データ集約型アプリケーションを支える主に Scala と Python の何百万もの行のコードが管理されています。

GermanTechJobs

Bazel により、ワークフローが 10 倍に簡素化され、大規模な機能のリリースが可能になりました。

Google

Bazel は、Google のニーズに合わせてスケーリングし、再現性とプラットフォーム/言語のサポートに関する Google の要件を満たすことができるように設計されています。Google のすべてのソフトウェアは Bazel を使用してビルドされます。Google は、毎日何百万ものビルドに Bazel とそのルールを使用しています。

Huawei

Huawei Technologies は、約 30 件のプロジェクトで Bazel を使用しています。これらは Java/Scala/Go プロジェクトです。Go プロジェクトを除き、他はもともと Maven でビルドされています。Maven でビルドされたプロジェクトを Bazel でビルドされたプロジェクトに変換する簡単なツールを作成します。今後、ますます多くのプロジェクトで Bazel が使用される予定です。

IMC Trading

IMC は、アムステルダムに本社を置く、グローバルな独自取引会社であり、マーケット メーカーです。Google では、Bazel を使用して Java/C++/Python/SystemVerilog プロジェクトを継続的にビルドしてテストしています。

Improbable.io

Improbable.io は、数百万もの複雑なエンティティが存在する巨大なシミュレーションを作成できる分散オペレーティング システムである SpatialOS を開発しています。

Interaxon

InteraXon は、脳波をデジタル信号に変換するハードウェアとソフトウェア プラットフォームを開発する、思考制御コンピューティング企業です。

Jupiter

Jupiter は、食料品や家庭用品を毎週配達する会社です。

バックエンド コードで Bazel を使用します。具体的には、リモート キャッシュを使用して proto と Kotlin を JVM バイナリにコンパイルします。(出典

Just

Just は、ノルウェーに本社を置くエンタープライズ フィンテック企業です。世界中の企業財務担当者がリスクと流動性を管理する方法を変革するソフトウェア ソリューションを開発しています。アプリケーション スタック全体が Bazel でビルドされている。

LINE

Line は、日本で最も人気のあるメッセージ アプリであるインスタント コミュニケーション アプリを提供しています。コードベースは Swift が約 60%、C/C++/Objective-C/Objective-C++ が約 40% で構成されており、Bazel を使用しています(ソース)。

Bazel に切り替えた後、ビルド時間が大幅に改善されました。これにより、QA 期間中の処理時間が大幅に短縮されました。新しいビルドをテスターに配布する際に、ビルドとテストを 1 時間待つ必要がなくなりました。(Bazel による iOS 版 LINE のビルド パフォーマンスの改善

LingoChamp

LingoChamp は、英語学習者に専門的なソリューションを提供しています。Google では、Go、Java、Python のプロジェクトに Bazel を使用しています。

LinkedIn

Microsoft の子会社である LinkedIn は、世界最大のプロフェッショナル ソーシャル ネットワークです。LinkedIn は、iOS アプリのビルドに Bazel を使用しています。

Lucid Software

Lucid Software は、チームがアイデアを現実にしていくために、ビジュアル コラボレーションのリーダーとしてサポートしています。LucidchartLucidsparkLucidscale などの製品を使用すると、チームはどこにいても、共有ビジョンを調整し、複雑さを明確にし、視覚的にコラボレーションできます。

Lucid は Bazel を使用して、数百万行の Scala と TypeScript をビルドしています。Bazel に移行したことで、ビルドの速度が大幅に向上し、ビルド環境に対する外部依存関係が軽減され、ビルドシステムの使用が簡素化されました。Bazel により、Lucid の開発者の生産性が向上し、さらなる成長の可能性が開かれました。

Lyft

Lyft は、iOS アプリ(ソース)と Android アプリに Bazel を使用しています。

Meetup

Meetup は、オフラインのグループ ミーティングを促進するオンライン ソーシャル ネットワーキング ポータルです。Meetup エンジニアリング チームは rules_scala に貢献しており、rules_avrorules_openapi のメンテナです。

Nvidia

Nvidia では、bazel の Python の欠点を回避するために、Python に dazel(docker bazel)を使用してきました。その他のすべては通常の Bazel で実行されます(主に Go / Scala/ C++/ Cuda)(ソース

Peloton Technology

Peloton Technology は、トラックの事故と燃料使用量に取り組む自動運転車技術企業です。彼らは Bazel を使用して、自動車安全システムの信頼性の高いビルドを可能にします

Pigweed

Pigweed は、大規模なチームによる持続的で堅牢かつ迅速な組み込み製品開発のためのオープンソース ソリューションです。Pigweed は、Google の Google Pixel シリーズ、Google Nest サーモスタット、衛星自律型航空ドローンなど、数百万台のデバイスに搭載されています。

Pigweed は、Bazel をメインのビルドシステムとして使用します。Bazel for Embedded のブログ投稿では、エンベデッド プロジェクトに優れたビルドシステムである理由について説明しています。

Pinterest

Pinterest は世界中のアイデアのカタログです。Bazel を使用して、さまざまなバックエンド サービス(Java/C++)と iOS アプリケーション(Objective-C/C++)をビルドします。

Google は、パフォーマンスを桁違いに改善し、ビルド環境のばらつきを排除し、段階的に導入するための基盤を構築するという目標に、Bazel が最適であると判断しました。そのため、現在はすべての iOS リリースで Bazel を使用しています。Pinterest で高速で信頼性の高い iOS ビルドを開発する

PubRef

PubRef は、新しい科学出版プラットフォームです。rules_closure で Bazel を使用してフロントエンドをビルドし、ネイティブ Java ルールを使用してメイン バックエンドをビルドし、rules_gorules_noderules_kotlin を使用してさまざまなバックエンド サービスをビルドします。rules_protobuf は、バックエンド サービス間の gRPC ベースの通信を支援するために使用されます。PubRef.org はコロラド州ボルダーに拠点を置いています。

Redfin

Redfin は、地域のフルサービス エージェントが在籍する次世代の不動産仲介業者です。Bazel を使用して、ウェブサイトとさまざまなバックエンド サービスをビルドしてデプロイします。

移行はほぼ完了し、状況は大幅に改善されています。CI ビルドは高速化されています(大幅に高速化されています。以前は 40 ~ 90 分かかっていたデベロッパー ビルドが、現在は平均 5 ~ 6 分に短縮されています)。信頼性も大幅に向上しています。これは定量化が難しいですが、説明できないビルドエラーを「ただ起こる」ものから、解決すべき実際の問題として捉えるようになったことで、信頼性が向上する好循環が生まれました。(Maven から Bazel に切り替えてビルド時間を 10 倍に短縮

儀式

Ritual は、レストランと顧客をつなぐモバイル アプリです。待ち時間なしで、欲しい食べ物や飲み物を簡単に手に入れられる、時間節約ツールを提供します。Ritual は、バックエンド サービスに Bazel を使用しています。

スナップ

Snapchat メッセージ アプリのデベロッパーである Snap は、2020 年に Buck から Bazel に移行しました(ソース)。このプロセスについて詳しくは、エンジニアリング ブログをご覧ください。

Stripe

Stripe はモバイル決済ソリューションを提供しています。エンジニアリング ブログで詳しく説明されているように、ビルド パイプラインとテスト パイプラインで Bazel を使用しています。

Tinder

Tinder は 2021 年に iOS アプリを CocoaPods から Bazel に移行しました(ソース)。

Tink

Tink は、欧州の金融テクノロジー企業で、欧州の銀行に接続するための最善の方法を構築しています。

Bazel を使用して、ポリグロット モノレポからバックエンド サービスを構築しています。Tink のエンジニアが bazel build //stockholm/... ミートアップ グループを組織しています。

Tokopedia

Tokopedia は、e コマースを専門とするインドネシアの IT 企業です。1 か月のアクティブ ユーザー数は 9, 000 万人を超え、このプラットフォームで出店している販売者は 700 万以上にのぼります。

Tokopedia は、Tokopedia が iOS ビルド時間を 1,000% 短縮した方法という記事を執筆し、Bazel がビルドを高速化した方法について説明しています。Bazel を使用するとビルド時間が 55 分から 10 分に短縮され、リモート キャッシュを使用すると 5 分に短縮されました。

Trunk.io

Trunk は、Andreessen Horowitz と Initialized Capital が支援するサンフランシスコに拠点を置く企業です。Trunk は、Bazel ビルドシステムを第一級でサポートする強力なプル リクエストの統合サービスを提供します。Trunk のマージ サービスは、Bazel がコードベース内の依存関係を理解していることを活用して、並列マージレーンをインテリジェントに作成します。これにより、独立した変更を同時にテストして統合できます。

Trunk の内部モノレポでは、モダンな C++ 20 と TypeScript をビルドし、bazel グラフの知識を活用してコードを選択的にテストおよび統合します。

Twitter

Twitter は、主なビルドツール(ソース)として Pants から Bazel に移行することを決定しました。

Two Sigma

Two Sigma は、世界のデータから価値を見出すことに専念する、ニューヨークに本社を置くテクノロジー企業です。

TypeDB

TypeDB のロゴ

TypeDB は、相互接続されたデータを直感的にモデル化するために使用できるデータベース テクノロジーです。型理論と多態性のクエリ言語である TypeQL により、人間が判読できるシンプルなクエリでデータにアクセスできます。このクエリは光速で実行されます。

Bazel により、TypeDB チームは、さまざまな言語で多くのリポジトリを管理し、多数のプラットフォームにシームレスにデプロイする高度なオーケストレーションの CI とディストリビューション パイプラインを構築できます。TypeDB チームは、ソフトウェア ディストリビューションの組み立てとデプロイ用の Bazel ルールもリリースしました。

Uber

Uber は配車サービス会社です。900 人のアクティブなデベロッパーがいる Uber の Go monorepo は、おそらく Bazel を使用している最大の Go リポジトリの 1 つです。Uber の経験について詳しくは、Bazel を使用して Uber の Go Monorepo を作成するをご覧ください。

Uber Advanced Technologies Group

Uber Advanced Technologies Group は、トラック/貨物輸送や自律走行の乗車共有など、Uber の自律走行車の取り組みに重点を置いています。組織が Bazel をメインのビルドシステムとして使用している。

Vistar Media

Vistar Media は、ブランドが実世界での行動に基づいて消費者にリーチできる広告プラットフォームです。エンジニアリング チームは主にフィラデルフィアに拠点を置いており、ビルド、デプロイ、テストの高速化、さまざまなテクノロジーで記述されたリポジトリの統合に Bazel を使用しています。

VMware

VMware は、Bazel を使用して、顧客向けの革新的な製品を開発しながら、確定的で信頼性の高いビルドを生成しています。

Wix

Wix はクラウドベースのウェブ開発プラットフォームです。バックエンドは Java と Scala コードを使用します。Google Cloud Build でリモート実行を使用します。

bazel リモート実行で実行すると、ビルド/テストの並列処理機能を利用した bazel のビルド/テストの並列処理機能により、クリーンビルドが約 5 倍高速化されました。bazel の積極的なキャッシュ メカニズムを利用しているため、平均ビルド時間が 10 倍以上高速化されています。(Maven または Gradle から Bazel に移行する場合は、5 つの重要な質問)

Zenly

Zenly は、友だちや家族の現在地をリアルタイムで確認できる地図アプリです。友達と会う、または最新情報をチェックする最も楽しい方法です。離れていても、一緒にいる気分になれます。


Bazel を使用するオープンソース プロジェクト

懸垂下降

Abseil は、C++ 標準ライブラリを拡張するように設計されたオープンソースの C++ コード(C++11 に準拠)のコレクションです。

Angular

Angular は一般的なウェブ フレームワークです。Angular は Bazel でビルドされています。

Apollo

Apollo は、自動運転車の開発、テスト、デプロイを加速する高パフォーマンスで柔軟なアーキテクチャです。

brpc

Baidu 全体で使用されている産業用 RPC フレームワーク。1,000,000 を超えるインスタンス(クライアントはカウントされません)と数千種類のサービスがあり、Baidu では「baidu-rpc」と呼ばれます。

cert-manager

cert-manager は、さまざまな発行元からの TLS 証明書の管理と発行を自動化する Kubernetes アドオンです。これにより、証明書が定期的に有効で最新の状態になり、有効期限が切れる前に適切なタイミングで証明書の更新が試行されます。

CallBuilder

1 つの関数を記述するだけでビルダーを作成できる Java コード ジェネレータ。

CPPItertools

Python の組み込み関数と itertools ライブラリにインスパイアされた、範囲ベースの for ループ アドオンを提供する C++ ライブラリ。itertools や Python3 組み込み関数と同様に、このライブラリは可能な限り遅延評価を使用します。

Copybara

Copybara は、リポジトリ間でコードを変換して移動するためのツールです。

Dagger

Dagger は、Java と Android の両方に対応した、完全に静的なコンパイル時依存関係注入フレームワークです。

DAML

DAML は、安全でプライバシーに配慮したランタイムで将来を見据えた分散アプリケーションを構築するためのスマート コントラクト言語です。

DeepMind Lab

エージェントベースの AI 研究向けのカスタマイズ可能な 3D プラットフォーム。

Drake

Drake は、MIT で始まり、現在はトヨタ自動車研究所が主導する C++ ツールボックスです。これは、ロボットのダイナミクスを分析し、ロボット用の制御システムを構築するためのツールの集合であり、最適化ベースの設計と分析に重点を置いています。

Envoy

C++ L7 プロキシと通信バス

エラーが発生しがち

一般的な Java のミスをコンパイル時エラーとして検出します。(Bazel への移行は進行中です)。

Extensible Service Proxy

Extensible Service Proxy(ESP)は、JSON/REST または gRPC API サービスの API 管理機能を有効にするプロキシです。現在の実装は、NGINX HTTP リバース プロキシ サーバーに基づいています。

FFruit

FFruit は、人気のあるサービス Falling Fruit 用の無料のオープンソース Android アプリです。

Gerrit Code Review

Gerrit は、Git ベースのプロジェクトのコードレビューとプロジェクト管理のためのツールです。

Gitiles

Gitiles は、JGit 上に構築された、Git リポジトリ用のシンプルなリポジトリ ブラウザです。

Grakn

Grakn(https://grakn.ai/)は、複雑なデータ ネットワークを整理してクエリ可能にするナレッジグラフ エンジンです。

GRPC

言語とプラットフォームに依存しないリモート プロシージャ コール システム。(Bazel はサポートされているビルドシステムですが、主なビルドシステムではありません)。

gVisor

gVisor はコンテナ ランタイム サンドボックスです。

Guetzli

Guetzli は、優れた画質で優れた圧縮密度を目指す JPEG エンコーダです。

Gulava

Prolog スタイルの述語を記述し、通常の Java コードからシームレスに使用できる Java コード ジェネレータ。

Heron

Heron は、Twitter のリアルタイム分散フォールト トレラント ストリーム処理エンジンです。

Jazzer

Jazzer は、Java やその他の JVM ベースの言語向けの Fuzzer で、JUnit 5 と統合されています。

JGit

JGit は、Git バージョン管理システムを実装した軽量の純粋な Java ライブラリです。

Jsonnet

JSON 用のエレガントで正式に指定された構成生成言語。(Bazel はサポートされているビルドシステムです)。

Kubernetes

Kubernetes は、複数のホストにわたるコンテナ化されたアプリケーションを管理するためのオープンソース システムであり、アプリケーションのデプロイ、メンテナンス、スケーリングの基本的なメカニズムを提供します。

Kythe

コードを扱うツールを構築するためのエコシステム。

Nomulus

Google App Engine のトップレベル ドメイン名レジストリ サービス。

ONOS : Open Network Operating System

ONOS は、従来の「ブラウンフィールド」ネットワークから SDN「グリーンフィールド」ネットワークへの移行をサポートする唯一の SDN コントローラ プラットフォームです。これにより、ネットワーク事業者は新しい機能を利用できるようになります。また、デプロイと運用の費用を削減できます。

PetitParser for Java

従来、プログラミング言語の文法は静的に指定されていました。必然的に生じる曖昧さのため、コンポーズや再利用が困難です。PetitParser は、スキャナレス解析、パーサー コンビネーター、解析式文法、パクラット パーサーのアイデアを組み合わせて、文法とパーサーを動的に再構成できるオブジェクトとしてモデル化します。

PlaidML

PlaidML は、ディープラーニングをあらゆる場所で機能させるためのフレームワークです。

プロジェクト V

Project V は、インターネット経由で独自のプライバシー ネットワークを構築するための一連のツールです。

Prysmatic Labs Ethereum 2.0 の実装

Prysm は、ブロックチェーン ベースの分散コンピューティング プラットフォームである Ethereum 2.0 用のシャーディング クライアントです。

Ray

Ray は、柔軟で高性能な分散実行フレームワークです。

Resty

Resty は、Go 用のシンプルな HTTP クライアント ライブラリと REST クライアント ライブラリです(Ruby rest-client にインスパイアされています)。

Roughtime

Roughtime は、安全な時刻同期を提供するプロジェクトです。

Selenium

Selenium は、ウェブ アプリケーションをテストするためのポータブル フレームワークです。

セマンティック

Semantic は、ソースコードの解析、分析、比較を行う Haskell ライブラリとコマンドライン ツールです。これは GitHub によって開発されており(コード ナビゲーションなどに使用されます)。

配信済み

Served は、高パフォーマンスの RESTful ウェブサーバーを構築するための C++ ライブラリです。

Sonnet

Sonnet は、複雑なニューラル ネットワークを構築するために TensorFlow 上に構築されたライブラリです。

Sorbet

Sorbet は、Ruby のサブセット用の高速で強力な型チェッカーです。数百万行のコードを含むコードベースにスケーリングでき、段階的に導入できます。

Spotify

Spotify は Bazel を使用して iOS アプリと Android アプリをビルドしています(ソース)。

Tink

Tink は、安全で、正しく使用しやすく、不正使用しにくい暗号 API を提供する、多言語のクロス プラットフォーム オープンソース ライブラリです。

TensorFlow

機械学習用のオープンソースのソフトウェア ライブラリ。

ターボサンタ

プラットフォームに依存しない GameBoy エミュレータ。

Wycheproof

Project Wycheproof は、既知の攻撃に対する暗号ライブラリをテストします。

XIOSim

XIOSim は、x86 アーキテクチャの詳細なユーザーモード マイクロアーキテクチャ シミュレータです。

ZhihuDailyPurify

ZhihuDailyPurify は、中国のクエスチョン アンド アンサー ウェブである Zhihu Daily の軽量版です。