Self-Hosting-Guide - セルフホスティングガイド。ローカルホスティング(オンプレミスおよびプライベートWebサーバー)と、あなた自身または組織によるソフトウェアアプリケーションの管理についてすべて学びましょう。

(Self-Hosting Guide. Learn all about locally hosting(on premises & private web servers) and managing software applications by yourself or your organization.)

Created at: 2022-02-07 04:03:15
Language: Dockerfile


セルフホスティングガイド

ソフトウェアとハードウェアを含むセルフホスティングデバイスを使い始めるためのガイドで、より良く、より効率的なセルフホスティングになります。

注:この便利な拡張子Markdown PDFを使用すると、このマークダウンファイルをVSCodePDFに簡単に変換できます。


目次

  1. セルフホスティングの開始

  2. ワイヤーガード

  3. ネクストクラウド

  4. ラズベリーパイ

  5. グラファナ

  6. ネットワーキング

  7. 港湾労働者

  8. Kubernetes

  9. アンシブル

  10. データベース

  11. 通信会社 5G

  12. オープンソースセキュリティ

  13. 差分プライバシー

  14. 機械学習

  15. IoTプロトコル

  16. オペレーティング システム (OS)

  17. ミドルウェア

  18. ノードフローエディタ

  19. ツールキット

  20. データビジュアライゼーション

  21. 捜索

  22. ハードウェア

  23. インメモリデータグリッド

  24. ホームオートメーション

  25. ロボティックス

  26. メッシュネットワーク

  27. ブロックチェーン開発

  28. ノード.js開発

  29. C/C++ 開発

  30. Java 開発

  31. パイソン開発

  32. 錆の開発

  33. 迅速な開発

  34. XML 開発

セルフホスティングの開始

このページのトップへ戻る

セルフホスティングは、サービスとしてのソフトウェア(SaaS)プロバイダからの毎月のサブスクリプションの代わりに、ローカルホスティング(オンプレミスおよびプライベートWebサーバー)と個人または組織によるソフトウェアアプリケーションの管理の実践です。

ほとんどの自己ホスト型ソフトウェアは、ソフトウェアが構成と依存関係をバンドルし、オペレーティングシステムから分離できるようにするパッケージングシステムであるDockerを使用してインストールできます。ドッカーを使用するソフトウェアは、コマンドラインまたはPortainerなどのグラフィカルインターフェイスを使用してインストールできます。ソフトウェアは、アプリケーションを含むイメージ ファイルをダウンロードし、コンテナーと呼ばれるもの内に独自の依存関係と構成を設定するコピーを作成することによって、Docker と共にインストールされます。コンテナがなければ、使用するソフトウェアの依存関係を満たすために、同じプログラミング言語やツールの異なるバージョンをインストールする必要があることがよくありますが、複雑になる可能性があります。


セルフホスティングのためのツール

このページのトップへ戻る

コンテナー

このページのトップへ戻る

コンテナは、コードとそのすべての依存関係(CPU、メモリ、ファイルストレージ、ネットワーク接続など)をパッケージ化するソフトウェアの標準ユニットであり、アプリケーションはあるコンピューティング環境から別のコンピューティング環境に迅速かつ確実に実行されます。

コンテナー イメージは、コード、ランタイム、システム ツール、システム ライブラリ、設定など、アプリケーションの実行に必要なすべてのものを含む、軽量でスタンドアロンの実行可能なソフトウェア パッケージです。

コンテナイメージを取得するのに最適な場所:

Docker Compose は、マルチコンテナー アプリケーションの定義と共有を支援するために開発されたツールです。Composeを使用すると、サービスを定義するYAMLファイルを作成し、1つのコマンドですべてをスピンアップまたはすべて分解できます。

Kompose は、Docker Compose から KubernetesOpenShift などのコンテナー オーケストレーターへの変換ツールです。

Containerd は、イメージの転送とストレージからコンテナーの実行と監視、低レベルのストレージ、ネットワーク接続など、ホスト システムのコンテナー ライフサイクル全体を管理するデーモンです。Linux と Windows で利用できます。

Podman はデーモンレスのオープンソースの Linux ネイティブツールで、Open Containers Initiative (OCI) Containers and Container Images を使用してアプリケーションを簡単に検索、実行、構築、共有、デプロイできるように設計されています。Podman は、Docker コンテナーエンジンを使用したことのある人なら誰でも使い慣れたコマンドラインインターフェイス (CLI) を提供します。

Limaは、自動ファイル共有とポート転送(WSL2に類似)を使用してLinux仮想マシンを起動し、コンテナ化するツールです。これは、Dockerデスクトップのための素晴らしいフリーでオープンソースの代替手段です。

Colima は macOS (および Linux) 上のコンテナランタイムで、最小限のセットアップで動作します。

Portainer Community Edition は、Docker、Swarm、Kubernetes、ACI 環境の管理に使用できる、コンテナー化されたアプリケーション向けの軽量なサービス配信プラットフォームです。これは、使用するのと同じくらい簡単に展開できるように設計されています。

Yacht は、テンプレートと 1 クリックのデプロイに重点を置いたコンテナー管理 UI です。

Kitematicは、Mac、Linux、およびWindowsでDockerコンテナを管理するためのシンプルなアプリケーションであり、グラフィカルユーザーインターフェイス(GUI)からアプリケーションコンテナを制御できます。

オープンコンテナイニシアチブは、コンテナフォーマットとランタイムに関するオープンな業界標準を作成するという明確な目的のためのオープンガバナンス構造です。

Buildah は、Open Container Initiative (OCI) イメージを構築するためのコマンド ライン ツールです。これは、Docker、Podman、Kubernetesで使用できます。

Red Hat Quayは、アプリケーションとコンテナを構築、保存、配布するプロジェクトです。

Clairは、アプリケーションコンテナ(現在はOCIDockerを含む)の脆弱性を静的に分析するためのオープンソースプロジェクトです。

Shipwright は、Yacht、Portainer、Docker-Compose、Unraid のテンプレートを生成するための WebUI です。

自動修復は、異常なドッカーコンテナを監視して再起動します。

Dozzle は、Docker ログを監視するための Web ベースのインターフェイスを備えた小型軽量アプリケーションです。ログファイルは保存されません。これは、コンテナログのライブ監視専用です。

Diun は、Docker レジストリで Docker イメージが更新されたときに通知を受け取るツールです。

ものみの塔は、Dockerコンテナの基本イメージの更新を自動化するためのプロセスです。

CI/CD

このページのトップへ戻る

  • CI/CD: 継続的インテグレーションと継続的デリバリー

ドローンは、コンテナ技術に基づいて構築された継続的デリバリーシステムです。ドローンは、単純な YAML 構成ファイル (docker-compose のスーパーセット) を使用して、Docker コンテナー内でパイプラインを定義して実行します。

Travis CIは、GitHubでホストされているソフトウェアプロジェクトの構築とテストに使用されるホストされた継続的インテグレーションサービスです。

Circle CIは、ソフトウェアチームがよりスマートに、より迅速に作業できるようにする継続的インテグレーションおよび継続的デリバリープラットフォームです。

Buddyは、CI / CDツールから必要なものすべてをパックする学習曲線のないフル機能のDevOpsプラットフォームです。

Buildbot は、プロジェクト コード ベースへの変更を検証するために必要なコンパイルまたはテスト サイクルを自動化する継続的インテグレーション ツールです。ジョブをキューに入れ、必要なリソースが使用可能なときにジョブを実行し、結果を報告します。

発達

このページのトップへ戻る

Proxmox VE(Virtual Environment)は、エンタープライズ仮想化のためのオープンソースプラットフォームです。VM とコンテナー、ソフトウェア定義のストレージとネットワーク、高可用性クラスタリング、および複数のすぐに使用できるツールを 1 つのソリューションで簡単に管理できる組み込みの Web インターフェイスを備えています。

コード サーバーは、リモート サーバー上で実行される Visual Studio コードで、ブラウザーからアクセスできます。

Giteaはコミュニティが管理する痛みのない自己ホスト型Gitサービスです。

Node-Redは、イベント駆動型アプリケーション用のローコードプログラミングです。

リモートデスクトップ

このページのトップへ戻る

FreeRDP は、無料のリモート デスクトップ プロトコル ライブラリとクライアントです。

Rustdeskは、誰にとってもオープンソースの仮想/リモートデスクトップインフラストラクチャです。PC (Windows、macOS、および Linux) および Android デバイスを表示および制御します。

TinyPilotはKVM over IPを有効にするツールで、任意のコンピューターをリモートで制御できます。

X2Goは、変更されたNX 3プロトコルを使用するLinux用のオープンソースのリモートデスクトップソフトウェアです。LinuxシステムのGUIへのリモートアクセスを提供します。

Apache Guacamoreはクライアントレスのリモートデスクトップゲートウェイです。VNC、RDP、SSHなどの標準プロトコルをサポートしています。

リモートは、.NET 6、Blazor、SignalR Core、および WebRTC で構築されたリモート コントロールおよびリモート スクリプト ソリューションです。

P2Pリモートデスクトップは、ポータブルで、構成やインストールが必要なリモートデスクトップツールではありません。

Cloudflareトンネルは、Cloudflareネットワークからオリジンへのトラフィックをプロキシするトンネリングデーモンです。このデーモンは、Cloudflareネットワークとオリジン(ウェブサーバー)の間にあります。これにより、クライアント要求が引き付けられ、このデーモンを介して送信され、ファイアウォールに穴をあける必要がなく、origin(Webserver)はできるだけ閉じたままにすることができます。

WireGuard®は、最先端の暗号化を利用する簡単で高速で最新のVPNです。これは、大規模な頭痛を避けながら、IPsecよりも速く、よりシンプルで、よりスリムで、より有用であることを目指しています。WireGuardは、組み込みインターフェイスとスーパーコンピュータの両方で実行するための汎用VPNとして設計されており、多くの状況に適しています。当初はLinuxカーネル用にリリースされましたが、現在はクロスプラットフォーム(Windows、macOS、BSD、iOS、Android)であり、広く展開可能です。

NetBirdは、WireGuard®の上に構築されたオープンソースのVPN管理プラットフォームであり、組織や家庭向けの安全なプライベートネットワークを簡単に作成できます。

TailscaleはWireGuardベースのアプリで、あらゆる規模のチームにとって安全でプライベートなネットワークを簡単にします。これは、あらゆる種類のNATトラバーサルソーサリーを使用して、ネットワークのコンピュータ間のオーバーレイネットワークのように機能します。

ヘッドスケールは、Tailscaleコーディネーションサーバーのオープンソースの自己ホスト型実装です。

MeshCentral は完全なコンピュータ管理 Web サイトです。独自のWebサーバーを実行して、ローカルネットワーク上またはインターネット上の任意の場所でコンピュータをリモートで管理および制御できます。サーバーを起動したら、デバイス・グループを作成し、管理する各コンピューターにエージェントをダウンロードしてインストールします。

VNCビューアは、世界中のどこからでもあなたのiPhone、iPad、Mac、Windows、Linuxコンピュータ上で使用できる無料のリモートデスクトップアプリケーションです。

TightVNCは無料のリモートデスクトップアプリケーションです。リモートマシンのデスクトップを見て、そのコンピュータの前面に座っているのと同じように、ローカルマウスとキーボードで制御できます。

仮想化

このページのトップへ戻る

HVM (ハードウェア仮想マシン) は、ベアメタルハードウェア上で実行されているかのように、仮想マシン上でオペレーティングシステムを変更せずに直接実行する機能を提供する仮想化タイプです。

PV(ParaVirtualization)は、Xen Projectチームによって導入された効率的で軽量な仮想化技術であり、後に他の仮想化ソリューションで採用されました。PVはホストCPUからの仮想化拡張を必要としないため、ハードウェア支援仮想化をサポートしていないハードウェアアーキテクチャでの仮想化を可能にします。

ネットワーク機能仮想化 (NFV) は、ネットワークアプライアンスのハードウェアを仮想マシンに置き換えるものです。仮想マシンはハイパーバイザーを使用して、ネットワーク ソフトウェアとルーティングや負荷分散などのプロセスを実行します。NFV を使用すると、ルーターやファイアウォールなどの専用ハードウェアから通信サービスを分離できます。この分離により、ネットワーク操作は、新しいハードウェアをインストールすることなく、動的に新しいサービスを提供できます。ネットワーク機能仮想化を使用したネットワークコンポーネントの展開は、従来のネットワークソリューションのような数ヶ月と比較して数時間しかかかりません。

ソフトウェア定義ネットワーキング (SDN) は、ソフトウェア ベースのコントローラーまたはアプリケーション プログラミング インターフェイス (API) を使用して、基盤となるハードウェア インフラストラクチャと通信し、ネットワーク上のトラフィックを転送する、ネットワークへのアプローチです。このモデルは、専用のハードウェア デバイス (ルーターとスイッチ) を使用してネットワーク トラフィックを制御する従来のネットワークとは異なります。

仮想化インフラストラクチャマネージャ(VIM)は、高性能ライフサイクル管理によるサービスの提供とコスト削減であり、NFVインフラストラクチャ(NFVI)を構成するソフトウェアとハードウェアのライフサイクル全体を管理し、物理リソースと仮想リソースの両方のライブインベントリと割り当て計画を維持します。

管理とオーケストレーション (MANO) は、ETSI NFV と連携したオープン ソースの NFV 管理とオーケストレーション (MANO) ソフトウェア スタックを開発するための ETSI がホストするイニシアチブです。ETSI NFV アーキテクチャ フレームワークの 2 つの主要コンポーネントは、NFV オーケストレーターと VNF マネージャー (NFV MANO と呼ばれます) です。

マグマ社はオープンソースのソフトウェア・プラットフォームであり、ネットワーク事業者にオープンで柔軟で拡張可能なモバイル・コア・ネットワーク・ソリューションを提供します。彼らの使命は、サービスプロバイダーが費用対効果が高く拡張可能なキャリアグレードのネットワークを構築できるようにすることで、世界をより高速なネットワークに接続することです。マグマ社は3GPP世代(2G、3G、4G、または今後の5Gネットワーク)であり、アクセスネットワークに依存しない(セルラーまたはWiFi)。最小限の開発と展開の労力で無線アクセスネットワークを柔軟にサポートできます。

OpenRANは、ソフトウェア定義機能間のオープンインターフェイスを備えた汎用プラットフォームに統合されたインテリジェントな無線アクセスネットワーク(RAN)です。オープンRANエコシステムは、マルチベンダー展開への完全な開放性により、大きな柔軟性と相互運用性を可能にします。

Open vSwitch(OVS)は、オープンソースのApache 2.0ライセンスの下でライセンスされたオープンソースのプロダクション品質の多層仮想スイッチです。これは、標準の管理インターフェイスとプロトコル(NetFlow、sFlow、IPFIX、RSPAN、CLI、LACP、802.1ag)をサポートしながら、プログラムによる拡張を通じて大規模なネットワーク自動化を可能にするように設計されています。

Edge は、エンタープライズ アプリケーションを IoT デバイスやローカル エッジ サーバーなどのデータ ソースに近づける分散コンピューティング フレームワークです。ソースにあるデータにこのように近接していることで、インサイトの高速化、応答時間の改善、帯域幅の可用性の向上など、強力なビジネス上のメリットが得られます。

マルチアクセスエッジコンピューティング(MEC)は、ETSI内の業界仕様グループ(ISG)であり、ベンダー、サービスプロバイダー、およびサードパーティのアプリケーションをマルチベンダーのマルチアクセスエッジコンピューティングプラットフォーム間で効率的かつシームレスに統合できる、標準化されたオープンな環境を構築します。

仮想化ネットワーク関数 (VNF) は、ネットワーク機能仮想化 (NFV) 実装で使用されるソフトウェア アプリケーションで、インターフェイスが明確に定義され、1 つ以上のコンポーネント ネットワーク関数を定義された方法で提供します。例えば、セキュリティー VNF は、ネットワーク・アドレス変換 (NAT) およびファイアウォール・コンポーネント機能を提供します。

クラウドネイティブネットワーク機能(CNF)は、コンテナ内で実行するように設計および実装されたネットワーク機能です。CNF は、Kubernetes(K8s) ライフサイクル管理、俊敏性、回復力、可観測性など、クラウド ネイティブのアーキテクチャと運用の原則をすべて継承します。

物理ネットワーク機能(PNF)は、仮想化を受けていない物理ネットワークノードです。PNFとVNF(仮想化ネットワーク機能)の両方を使用して、ネットワークサービス全体を形成できます。

ネットワーク機能仮想化インフラストラクチャ(NFVI)は、NFVアーキテクチャ全体の基盤です。VNF をホストする物理コンピューティング、ストレージ、およびネットワーク ハードウェアを提供します。各NFVIブロックはNFVIノードと考えることができ、多くのノードを地理的に展開および制御できます。

仮想化ベースのセキュリティ (VBS) は、セキュリティで保護されたメモリ領域を作成して通常のオペレーティング システムから分離するためのハードウェア仮想化機能です。

ハイパーバイザー強制コード整合性 (HVCI) は、Hyper-V などのハイパーバイザーがハードウェア仮想化を使用して、悪意のあるコードや未検証のコードの挿入と実行からカーネル モード プロセスを保護するメカニズムです。コードの整合性の検証は、悪意のあるソフトウェアからの攻撃に耐性のある安全な環境で実行され、カーネル モードのページ アクセス許可はハイパーバイザーによって設定および維持されます。

NVIDIA Virtual GPU (vGPU) は、グラフィックスが豊富な仮想ワークステーションからデータ サイエンスや AI に至るまでのワークロードで強力な GPU パフォーマンスを実現するソフトウェアで、IT 部門は仮想化の管理とセキュリティの利点、および最新のワークロードに必要な NVIDIA GPU のパフォーマンスを活用できます。

AMD MxGPUはハードウェア・ベースの仮想化GPUソリューションで、業界標準のSR-IOV(シングル・ルートI/O仮想化)テクノロジーに基づいて構築されており、物理GPUごとに複数の仮想化ユーザーがリモートで作業できるようにします。

Proxmox仮想環境(VE)は、エンタープライズ仮想化のための完全なオープンソースプラットフォームです。VMとコンテナ、ソフトウェア定義のストレージとネットワーク、高可用性クラスタリング、および複数のすぐに使用できるツールを単一のソリューションで簡単に管理できる組み込みのWebインターフェイスが含まれています。

KVM (カーネルベースの仮想マシン用) は、仮想化拡張機能 (Intel VT または AMD-V) を含む x86 ハードウェア上の Linux 用の完全な仮想化ソリューションです。これは、コア仮想化インフラストラクチャを提供するロード可能なカーネルモジュール kvm.ko と、プロセッサ固有のモジュール kvm-intel.ko または kvm-amd.ko で構成されています。

QEMUは、ポータブルダイナミックトランスレータを使用した高速プロセッサエミュレータです。QEMU は、プロセッサーとさまざまな周辺機器を含むシステム全体をエミュレートします。PCを再起動せずに別のオペレーティングシステムを起動したり、システムコードをデバッグしたりするために使用できます。

Quickemuは、最適化されたWindows、macOS、Linuxデスクトップ仮想マシンをすばやく作成して実行するプログラムです。

Hyper-V を使用すると、物理ホスト上で仮想化されたコンピューター システムを実行できるようになります。これらの仮想化されたシステムは、あたかも物理的なコンピュータシステムであるかのように使用および管理できますが、仮想化および分離された環境に存在します。ハイパーバイザーと呼ばれる特殊なソフトウェアは、仮想システムと物理ハードウェア・リソース間のアクセスを管理します。仮想化により、コンピューター・システムの迅速なデプロイメント、システムを以前に既知の正常な状態に迅速にリストアする方法、および物理ホスト間でシステムをマイグレーションする機能が可能になります。

クラウドハイパーバイザーは、KVM 上で実行されるオープンソースの仮想マシンモニター (VMM) です。このプロジェクトは、限られたハードウェアアーキテクチャとプラットフォームのセットに加えて、最新のクラウドワークロードを独占的に実行することに焦点を当てています。クラウドワークロードとは、通常、クラウドプロバイダー内の顧客によって実行されるワークロードを指します。クラウドハイパーバイザーはRustに実装されており、rust-vmmクレートに基づいています。

VirtManager は、libvirt 経由で仮想マシンを管理するためのグラフィカルなツールです。ほとんどの使用法は QEMU/KVM 仮想マシンで使用されますが、Xen および libvirt LXC コンテナーは十分にサポートされています。libvirt ドライバの一般的な操作は動作するはずです。

oVirtはオープンソースの分散仮想化ソリューションで、エンタープライズインフラストラクチャ全体を管理するように設計されています。oVirtは信頼できるKVMハイパーバイザーを使用し、libvirt、Gluster、PatternFly、Ansibleなど、他のいくつかのコミュニティプロジェクトに基づいて構築されています。Red Hat Enterprise Virtualization のベースとなるコミュニティプロジェクトとして Red Hat によって設立され、プラットフォームに依存しないアクセスを備えた使いやすい Web ベースのフロントエンドから、仮想マシン、コンピューティング、ストレージ、およびネットワークリソースを一元管理できます。

Firecracker は、サーバーレスの運用モデルを提供する、セキュリティで保護されたマルチテナント コンテナーおよび機能ベースのサービスを作成および管理するために特別に構築されたオープン ソースの仮想化テクノロジです。microVM と呼ばれる軽量の仮想マシンでワークロードを実行し、ハードウェア仮想化テクノロジによって提供されるセキュリティと分離のプロパティと、コンテナーの速度と柔軟性を兼ね備えています。

Foreman は無料のオープン ソース プロジェクトで、反復的なタスクを簡単に自動化し、アプリケーションを迅速に展開し、オンプレミスまたはクラウドでサーバーのライフサイクルをプロアクティブに管理できます。

Harvesterは、Kubernetes上に構築されたオープンソースのハイパーコンバージドインフラストラクチャ(HCI)ソフトウェアです。

Anthos は、クラウド環境とオンプレミス環境に一貫した開発と運用エクスペリエンスを提供する最新のアプリケーション管理プラットフォームです。

HyperKit は、ハイパーバイザー機能をアプリケーションに埋め込むためのツールキットです。xhyve/bhyve に基づく完全なハイパーバイザーが含まれており、軽量の仮想マシンとコンテナーのデプロイに最適化されています。VPNKitDataKitなどの上位レベルのコンポーネントとインターフェースするように設計されています。HyperKit は現在、Hypervisor.framework を使用する macOS のみをサポートしており、Docker Desktop for Mac のコアコンポーネントとなっています。

インテル(R) グラフィックス仮想化テクノロジー (Intel® GVT) は、インテル・プロセッサー・グラフィックス (Broadwell 以降) を搭載した第 4 世代インテル・コア (TM)® プロセッサーから始まる、仲介パススルーを備えた完全な GPU 仮想化ソリューションです。複数のゲスト仮想マシンの GPU を仮想化するために使用でき、仮想マシンでネイティブに近いグラフィックス パフォーマンスを効果的に提供しながら、ホストが仮想化された GPU を通常どおりに使用できるようにします。

Apple Hypervisor は、サードパーティのカーネル拡張を使用せずに、軽量ハイパーバイザーの上に仮想化ソリューションを構築する frameowrk です。ハイパーバイザーは C API を提供するため、カーネル・エクステンション (KEXT) を記述することなく、ユーザー空間で仮想化テクノロジーと対話できます。その結果、このフレームワークを使用して作成したアプリケーションは、Mac App Store での配布に適しています。

Apple Virtualization Framework は、Apple シリコンおよび Intel ベースの Mac コンピュータ上で仮想マシンを作成および管理するための高レベルの API を提供するフレームワークです。このフレームワークは、ユーザーが定義したカスタム環境で Linux ベースのオペレーティング・システムをブートして実行するために使用されます。また、ネットワーク、ソケット、シリアルポート、ストレージ、エントロピー、メモリバルーンデバイスなど、多くのデバイスタイプの標準インターフェイスを定義するVirtio仕様もサポートしています。

Apple Paravirtualized Graphics Frameworkは、仮想マシン(以下ゲストと呼ばれる)で実行されているmacOS用のハードウェアアクセラレーショングラフィックスを実装するフレームワークです。オペレーティング・システムは、ゲスト内で実行されるグラフィックス・ドライバーを提供し、ホスト・オペレーティング・システム内のフレームワークと通信して、メタル・アクセラレーション・グラフィックスを利用します。

Xenは、サーバー仮想化、サービスとしてのインフラストラクチャ(IaaS)、デスクトップ仮想化、セキュリティアプリケーション、組み込みおよびハードウェアアプライアンス、自動車/航空など、さまざまな商用およびオープンソースアプリケーションにおける仮想化の推進に注力しています。

Ganetiは、XenやKVMなどの既存の仮想化テクノロジーやその他のオープンソースソフトウェアの上に構築された仮想マシンクラスタ管理ツールです。インストールが完了すると、ツールは仮想インスタンス(Xen DomU)の管理を想定します。

Packer は、単一のソース構成から複数のプラットフォーム用に同一のマシンイメージを作成するためのオープンソースツールです。Packer は軽量で、すべての主要なオペレーティング システムで動作し、高性能で、複数のプラットフォーム用のマシン イメージを並行して作成します。パッカーは、シェフやパペットのような構成管理を置き換えるものではありません。実際、イメージを構築するとき、Packer は Chef や Puppet などのツールを使用してイメージにソフトウェアをインストールできます。

Vagrantは、単一のワークフローで仮想マシン環境を構築および管理するためのツールです。使いやすいワークフローと自動化に重点を置いたVagrantは、開発環境のセットアップ時間を短縮し、生産パリティを向上させ、「私のマシンでの作業」の言い訳を過去の遺物にします。業界標準のテクノロジーに基づいて構築され、単一の一貫したワークフローによって制御されるため、構成が容易で再現可能でポータブルな作業環境が提供され、あなたとあなたのチームの生産性と柔軟性を最大限に高めるのに役立ちます。

パスワード管理

このページのトップへ戻る

Bitwardenは、ウェブサイトの資格情報などの機密情報を暗号化された金庫に保存する無料のオープンソースのパスワード管理サービスです。

Bitwarden Serverは、すべてのbitwardenクライアントアプリケーションの「バックエンド」に必要なAPI、データベース、およびその他のコアインフラストラクチャ項目を含むプロジェクトです。Bitwardenの自己ホスト型リリースリポジトリをチェックアウトしてください。

Vaultwardenは、以前はbitwarden_rsとして知られていたRustで書かれた非公式のBitwarden互換サーバーです。

AuthPass.app は、Keepass 2.x(kdbx 3.x)と互換性のあるモバイルおよびデスクトップ用のオープンソースパスワードマネージャーです。

ネットワークツール

このページのトップへ戻る

MQTT は、モノのインターネット (IoT) 用の OASIS 標準メッセージング・プロトコルです。これは、非常に軽量なパブリッシュ/サブスクライブメッセージングトランスポートとして設計されており、コードフットプリントが小さく、ネットワーク帯域幅が最小限に抑えられたリモートデバイスを接続するのに最適です。

LibreSpeedは、LAN上で実行することも、クラウドでホストすることもできますネットワーク速度テストツールです。

SmokePingはデラックスなレイテンシ測定ツールです。レイテンシ、レイテンシ分布、パケット損失を測定、保存、表示することができます。RRDtoolを使用して長期的なデータストアを維持し、きれいなグラフを描画し、各ネットワーク接続の状態に関する細かい情報を放棄します。

Nginxプロキシマネージャ(NPM)は、Dockerで実行されているリバースプロキシ管理システムです。セットアップは簡単で、NginxサーバーやSSL証明書の操作方法をユーザーが知る必要はありません。

Netdataは忠実度の高いインフラストラクチャの監視とトラブルシューティングであり、リアルタイム監視エージェントは、構成ゼロでシステム、ハードウェア、コンテナ、およびアプリケーションから何千ものメトリックを収集します。すべての物理/仮想サーバー、コンテナー、クラウド展開、エッジ/IoTデバイスで永続的に実行され、インシデントの途中で準備なしでシステムにインストールしても完全に安全です。

Pi-holeは、プライベートネットワークでの使用を目的としたクライアント側のソフトウェアをインストールすることなく、不要なコンテンツからデバイスを保護するDNSシンクホールです。Raspberry Pi などのネットワーク機能を備えた組み込みデバイスで使用するために設計されていますが、Linux およびクラウド実装を実行している他のマシンでも使用できます。

AdGuard Homeは、広告/トラッカー/その他のブロッキング、IPアドレスリダイレクト、DNSオーバーHTTPSを備えたDNSリレーステーションです。

NetBirdは、WireGuard®の上に構築されたオープンソースのVPN管理プラットフォームであり、組織や家庭向けの安全なプライベートネットワークを簡単に作成できます。

Supabase はオープンソースの Firebase の代替手段です。エンタープライズグレードのオープンソースツールを使用してFirebaseの機能を構築しています。

Plikは、golangのスケーラブルでフレンドリーな一時ファイルアップロードシステム(Wetransferのような)です。

Restify はフレームワークであり、REST API を構築するために接続スタイルのミドルウェアを利用しています。

Traefikはオープンソースのエッジルーターで、サービスの公開を楽しく簡単な体験にします。システムに代わって要求を受信し、どのコンポーネントが要求の処理を担当しているかを調べます。Traefikを際立たせているのは、その多くの機能に加えて、サービスに適した設定を自動的に検出することです。

Hugo は Go で書かれた静的な HTML および CSS ウェブサイトジェネレータです。速度、使いやすさ、および構成可能性のために最適化されています。Hugoはコンテンツとテンプレートを含むディレクトリを取得し、それらを完全なHTMLウェブサイトにレンダリングします。

sshuttleは、ssh経由で接続を転送する貧しい人のVPNとして機能する透過的なプロキシサーバーです。Linux および MacOS で動作し、DNS トンネリングをサポートしています。

NetHopperは、サービスとしてのマルチクラウドアプリケーションネットワークです。クラスター、サイト、クラウド、またはネットワーク全体のマイクロサービスを視覚化、接続、セキュリティで保護、保護、および監視する最も簡単な方法。

サイプレスは、ブラウザで実行されるものすべてについて、迅速かつ簡単で信頼性の高いテストを可能にするツールです。

キムチはKVM用のHTML5ベースの管理ツールです。KVM を使い始め、最初のゲストを作成するのをできるだけ簡単にするように設計されています。

IONは分散リアルタイム通信システムであり、目標はいつでもどこでも、どのデバイスでもチャットすることです。

FreeRDP は、無料のリモート デスクトップ プロトコル ライブラリとクライアントです。

Pimox は Proxmox から Raspberry Pi への移植版で、Rapberry Pi の Proxmox クラスタや、Pis と x86 ハードウェアのハイブリッドクラスタを構築することができます。

PiKVMは非常にシンプルで完全に機能するラズベリーパイベースのKVM over IPです。

Firezoneは、自己ホスト型のWireGuard®ベースのVPNサーバーとLinuxファイアウォールです。

モニタリング

このページのトップへ戻る

Proxmox Mail Gatewayはオープンソースの電子メールセキュリティソリューションで、メールサーバーをすべての電子メールの脅威から保護します。

M2MLabs MainSpringは、車両追跡や機械リモート監視などの機械間アプリケーションを構築するためのアプリケーションフレームワークです。このようなアプリケーションでは、典型的には、センサ(例えば、GPS、温度、圧力)およびアクターを備えたリモートデバイスは、デバイス通信プロトコル、デバイス構成、デバイスによって送信されたデータのストレージ、ならびにアプリケーションビジネスロジックおよびプレゼンテーション層を実行しているサーバアプリケーションと通信する。

InfluxDBはオープンソースの時系列データベースで、メトリックとイベントを監視するためにInfluxDataによって特別に構築され、スタック、センサー、およびシステムをリアルタイムで可視化します。InfluxDB を使用して、毎秒数百万ポイントをキャプチャ、分析、および保存し、要求の厳しい SLA を満たし、自動化への道筋を図解します。

Grafanaは、メトリックがどこに保存されていても、メトリックのクエリ、視覚化、アラート、および理解を可能にするツールです。

Prometheusは、イベントの監視とアラートに使用されるフリーソフトウェアアプリケーションです。HTTP プル モデルを使用して構築された時系列データベース (高次元性を可能にする) にリアルタイムのメトリックを記録し、柔軟なクエリとリアルタイムのアラートを提供します。

Lokiは、Prometheusに触発された水平方向にスケーラブルで可用性の高いマルチテナントログ集約システムです。それは非常に費用効果が高く、操作が簡単であるように設計されています。ログの内容にインデックスを付けるのではなく、各ログ ストリームのラベルのセットにインデックスを付けます。

Thanosは、無制限のストレージ容量を備えた高可用性メトリックシステムに構成できるコンポーネントのセットであり、既存のPrometheus展開の上にシームレスに追加できます。

Wyzeは、世界中のどこからでもセキュリティカメラからHDビデオをライブストリーミングするための優れたセキュリティおよび監視アプリケーションです。

稼働時間Kumaは、派手な自己ホスト型監視ツールです。

サーバーは、WebSocketごとにリアルタイムでメッセージを送受信するためのシンプルなサーバーです。

Blockyは、多くの機能を備えたローカルネットワークの広告ブロッカーとしての高速で軽量なDNSプロキシです

Dasyはあなたのために構築された自己ホスト型の個人用ダッシュボードです。ステータスチェック、ウィジェット、テーマ、アイコンパック、UIエディタなどが含まれています。

Netdataは忠実度の高いインフラストラクチャの監視とトラブルシューティングであり、リアルタイム監視エージェントは、構成ゼロでシステム、ハードウェア、コンテナ、およびアプリケーションから何千ものメトリックを収集します。すべての物理/仮想サーバー、コンテナー、クラウド展開、エッジ/IoTデバイスで永続的に実行され、インシデントの途中で準備なしでシステムにインストールしても完全に安全です。

Resticは、Linux、BSD、Mac、Windowsからファイルをバックアップできる最新のバックアッププログラムです。自己ホスト型およびオンラインサービスを含む、さまざまなストレージタイプに。簡単に、サーバーや複雑なセットアップなしで実行できる単一の実行可能ファイルです。事実上、バックアップしたファイルで実際に変更された部分のみを転送します。

オートレスティックは、驚くべきレスティックのラッパーです。驚くべきことですが、複数の場所にバックアップしたい多くの異なる場所がある場合、restic cliは少し圧倒的で管理が難しい場合があります。

MinIOは、世界最速のオブジェクトストレージサーバーを提供する高性能オブジェクトストレージツールです。デフォルトパリティ(EC:4)を備えた標準ハードウェアで325 GiB/秒および165 GiB/秒の読み取り/書き込み速度により、オブジェクトストレージは、Spark、Presto、TensorFlowに至るまでの多様なワークロードセットのプライマリストレージ層として動作できます。

Greyholeは、Sambaを使用して利用可能なすべてのハードドライブのストレージプールを作成するツールで(サイズに関係なく、接続されていても)、ハードウェアの一部に障害が発生した場合のデータ損失を防ぐために、保存するファイルの冗長コピーを作成できます。

DeviceHiveは、幅広い統合オプションを備えた、データ収集、処理と分析、視覚化、およびデバイス管理のための、無料で拡張性の高いオープンソースIoTプラットフォームです。

分散サービスアーキテクチャ(DSA)は、モノのインターネットインフラストラクチャのあらゆる層でデバイスの相互通信、ロジック、およびアプリケーションを容易にするオープンソースのIoTプラットフォームです。その目的は、異種のデバイス、サービス、アプリケーションを構造化された適応可能なリアルタイムデータモデルに統合することです。

IoTivity は、モノのインターネットの新たなニーズに対応するシームレスなデバイス間接続を可能にするオープンソースのソフトウェアフレームワークです。

Eclipse IoT Projectは、業界と消費者向けのIoTソリューションを構築するために使用されるオープンソース技術を提供します。

通信

マトリックスは、シンプルなHTTP APIとSDK(iOS、Android、Web)を提供してチャットルーム、ダイレクトチャット、チャットボットを作成し、エンドツーエンドの暗号化、ファイル転送、同期された会話履歴、フォーマットされたメッセージ、開封確認などを提供するツールです。

Element は、Matrix React SDK を使用して構築された Matrix Web クライアントです。

Mattermostは、ツールやチーム間のコミュニケーション、コラボレーション、ワークフローオーケストレーションのための安全なオープンソースプラットフォームです。

Telegramは、クロスプラットフォームのクラウドベースのインスタントメッセージングサービスです。それは誰にとっても無料のオープンAPIとソースコードを持っています。Telegramはまた、エンドツーエンドの暗号化されたビデオ通話、VoIP、ファイル共有、およびその他のいくつかの機能を提供します。

Mailrouteは、最高の電子メールフィルタリングとセキュリティ(CMMC、NIST 800-171、DFARS、DISA、HIPPA)を提供する素晴らしいツールです。受信トレイを保護し、スパム、ウイルス、ランサムウェア、セキュリティの脅威などを電子メールフィルタリングサービスで阻止します。Office 365、Googleなどで簡単にセットアップできます。

Nextcloud Talkは、統合された画面共有とSIP統合を備えた、ブラウザとモバイルインターフェイスを介したオンプレミスのプライベートオーディオ/ビデオ会議とテキストチャットです。

経営管理

このページのトップへ戻る

Nextcloudは、ファイルホスティングサービスを作成および使用するためのエンタープライズクライアント/サーバーソフトウェアのスイートです。強力なコラボレーション機能とデスクトップ、モバイル、Webインターフェイスを備えたオンプレミスのユニバーサルファイルアクセスおよび同期プラットフォームを提供します。

Odooは、CRM、eコマース、会計、在庫、販売時点管理、プロジェクト管理など、会社のすべてのニーズをカバーするオープンソースのビジネスアプリケーションのスイートです。

Eden Workplaceは、より多くのことを達成できる完全なワークプレイス管理プラットフォームです。デスク予約ソフトウェアは、恒久的なデスクとハイブリッドデスクの割り当て、従業員へのウェイファインディングソリューションの提供など、チームにとってデスク予約を容易にします。

Matomoは、プライバシーを犠牲にしたり、サイトを侵害したりしない倫理的な代替手段です。Matomoは、データと顧客のプライバシーを保護するGoogleアナリティクスの代替手段です。

もっともらしいアナリティクスは、シンプルで軽量(<1 KB)、オープンソースでプライバシーに優しいGoogleアナリティクスの代替手段です。クッキーを使用せず、GDPR、CCPA、PECRに完全に準拠しています。Plausibleをセルフホストすることも、クラウドで実行してもらうこともできます。

Mailrouteは、最高の電子メールフィルタリングとセキュリティ(CMMC、NIST 800-171、DFARS、DISA、HIPPA)を提供する素晴らしいツールです。受信トレイを保護し、スパム、ウイルス、ランサムウェア、セキュリティの脅威などを電子メールフィルタリングサービスで阻止します。Office 365、Googleなどで簡単にセットアップできます。

InvoicePlaneは、見積もり、請求書、クライアント、支払いを管理するための自己ホスト型オープンソースアプリケーションです。

コラボレーションと同期

このページのトップへ戻る

Syncthingは、継続的なファイル同期プログラムです。これは、リアルタイムで2つ以上のコンピュータ間でファイルを同期します。

Synology は、外出先で Synology ドライブ内のファイルに簡単にアクセスして管理できるツールです。ドキュメント、画像、ビデオ、音楽などの一般的なファイルタイプとは別に、Synology Office ドキュメント、スプレッドシート、スライドをドライブが提供するユーザーフレンドリーなビューアで開くこともできます。

Nextcloudは、ファイルホスティングサービスを作成および使用するためのクライアント/サーバーソフトウェアのスイートです。強力なコラボレーション機能とデスクトップ、モバイル、Webインターフェイスを備えたオンプレミスのユニバーサルファイルアクセスおよび同期プラットフォームを提供します。

FileRunは、自己ホスト型のGoogleドライブの代替手段です。これは、使いやすいユーザーインターフェイスを備えたフル機能のWebベースのファイルマネージャです。

FileBrowserは、指定されたディレクトリ内にファイル管理インターフェイスを提供し、ファイルのアップロード、削除、プレビュー、名前変更、編集に使用できます。複数のユーザーを作成することができ、各ユーザーは独自のディレクトリを持つことができます。

バックアップ

このページのトップへ戻る

Proxmox Backup Server は、VM、コンテナー、および物理ホストをバックアップおよび復元するためのエンタープライズ バックアップ ソリューションです。オープンソースソリューションは、増分バックアップ、重複排除、Zstandard圧縮、および認証済み暗号化をサポートしています。

Borgmaticは、サーバーとワークステーション用のシンプルで構成主導のバックアップソフトウェアです。クライアント側の暗号化でファイルを保護します。データベースもバックアップします。統合されたサードパーティサービスですべてを監視します。

Vortaは、macOSおよびLinuxデスクトップ用のバックアップクライアントです。強力なBorg Backupをお気に入りのデスクトップ環境と統合して、ディスク障害、ランサムウェア、盗難からデータを保護します。

ホームサーバー

このページのトップへ戻る

ホームアシスタントは、ローカルコントロールとプライバシーを第一に考えるオープンソースのホームオートメーションです。ホームアシスタントは、ラズベリーパイで素晴らしい動作するいじり屋やDIY愛好家の世界的なコミュニティによって供給されています。

ESPHomeは、シンプルでありながら強力な設定ファイルによってESP8266/ESP32を制御し、ホームオートメーションシステムを介してリモートで制御するシステムです。オートメーションシステム。

Shelly Cloudは、完成されたスマートホームコントロールツールで、どこにいてもShellyデバイスの正確な監視を提供します。Shelly デバイスは Alexa、Google Home、Android、iOS と互換性があります。

Zigbeeは、AmazonのEcho Plus、Samsung SmartThings、Signify(Philips Hue)など、大規模なスマートホームエコシステムプロバイダーの大多数によって使用されている、フルスタックで安全で信頼性が高く、市場で実証済みのソリューションです。

openHABは、あらゆる種類のスマートホーム技術、デバイスなどを統合することを目的としたクロスプラットフォームソフトウェアです。

Z-Waveは、すべての人の家庭をよりスマートで安全なものにするために取り組んでいる安全で信頼できるブランドの多くの背後にある主要な無線通信プロトコルです。

Caddy は、HTTPS を自動的かつ既定で使用する唯一の Web サーバーです。Caddy は、サイトの TLS 証明書を自動的に取得して更新します。

Bazarrは、SonarrとRadarrのコンパニオンアプリケーションです。それはあなたの要件に基づいて字幕を管理し、ダウンロードすることができます。あなたはテレビ番組や映画によってあなたの好みを定義し、Bazarrはあなたのためにすべての面倒を見ます。

Sonarr は Usenet と BitTorrent ユーザー向けの PVR です。お気に入りの番組の新しいエピソードの複数のRSSフィードを監視し、それらをつかんだり、並べ替えたり、名前を変更したりできます。

Homarrは、ホームサーバーのDockerコンテナ(Sonarr/Radarrなど)と対話するためのカスタマイズ可能なブラウザのホームページです。

Rustdeskは、誰にとってもオープンソースの仮想/リモートデスクトップインフラストラクチャです。PC (Windows、macOS、および Linux) および Android デバイスを表示および制御します。

TinyPilotはKVM over IPを有効にするツールで、任意のコンピューターをリモートで制御できます。

PM2は、ロードバランサーを内蔵したNode.jsアプリケーション用のプロダクションプロセスマネージャです。これにより、アプリケーションを永久に存続させ、ダウンタイムなしでアプリケーションをリロードし、一般的なシステム管理者タスクを容易にすることができます。

authentikは、柔軟性と汎用性に焦点を当てたオープンソースのアイデンティティプロバイダです。既存の環境で authentik を使用して、新しいプロトコルのサポートを追加できます。authentikは、アプリケーションにサインアップ/リカバリ/ etcを実装するための優れたソリューションでもあるため、対処する必要はありません。

Tdarrは、FFmpeg/HandBrake + Audio/Video Library Analytics + Video Health Checking (Windows、macOS、Linux、Docker)を使用した分散トランスコード自動化アプリケーションです。Tdarrの一般的な用途は、ビデオファイルをh264からh265(hevc)に変換し、サイズを40%〜50%節約することです。

QNAPスイッチシステム(QSS)は、QNAPの管理スイッチシリーズの設定インターフェースです。リンクアグリゲーション、VLAN、RSTPなどの管理機能を有効にして、ネットワークトポロジを簡単に処理できます。

ASUSTORはASUSの子会社であり、ネットワーク接続ストレージ(NAS)のリーディングプロバイダです。これは、家庭や企業ユーザー向けのストレージ、バックアップ、マルチメディア、ビデオ監視、モバイルアプリケーションの開発と統合を専門としています。

Seafileはオープンソースのクロスプラットフォームのファイルホスティングソフトウェアシステムです。Seafile は、ファイルを中央サーバーに格納されたライブラリに整理します。各ライブラリは、アプリを介して任意のデスクトップコンピュータ(Windows、Mac、Linux)およびモバイルデバイスに同期できます。

SnapRAIDはフォルダ・ベースのバックアップ・ツールであり、ソフトウェアまたはハードウェアのRAID5/6ディスクRAIDのように動作しますが、ディスクRAIDそのものではありません。リアルタイム・リカバリはなく、ディスク間の空き領域を組み合わせることはできず、バックアップを手動で実行する必要があります。

FreeNASはオープンソースのストレージプラットフォームであり、Windows、Apple、およびUNIXライクなシステム間での共有をサポートしています。これには、ZFS(大容量のストレージ容量と、ファイルシステムとボリューム管理を単一のソフトウェアに統合する)が含まれます。UPS、CIFS/SMB、FTP、NFS、RSYNC、SSH、AFP、Unison、UPnP、Webserver、iSCSI プロトコル、ローカルおよび MS AD 認証、およびディスクエンタイプションをサポートしています。

グラディスアシスタントは、プライバシー優先のオープンソースのホームアシスタントで、ラズベリーパイでうまく動作します。

オーディオブックシェルフは、自己ホスト型のオーディオブックとポッドキャストサーバーです。

Mistbornは、ファイアウォール、広告ブロック、多要素WireGuard VPNアクセスなど、独自のクラウドサービスを簡単に立ち上げて管理するための安全なプラットフォームです。

メディアサーバ

このページのトップへ戻る

Overseerrは、メディアライブラリの要求を管理するための無料のオープンソースソフトウェアアプリケーションです。SonarrRadarrPlexなどの既存のサービスと統合されます。

Jellyfinは、メディアの管理とストリーミングを制御できるフリーソフトウェアメディアシステムです。これは、独自のEmbyとPlexに代わるもので、専用サーバーから複数のアプリを介してエンドユーザーデバイスにメディアを提供します。

Embyは、Service Stack、jQuery、jQueryモバイル、Mono などの他の一般的なオープンソーステクノロジの上に構築されたホームメディアサーバーです。これは、クライアント開発を容易にする組み込みのドキュメントを備えたRESTベースのAPIを備えています。

OpenMediaVault は、Debian Linux をベースにした次世代のネットワーク接続ストレージ (NAS) ソリューションです。SSH、(S)FTP、SMB/CIFS、AFS、UPnPメディアサーバー、DAAPメディアサーバー、RSync、BitTorrentクライアントなどのサービスが含まれています。

Plexメディアサーバーは、ほぼすべてのデバイスで、あなたにとって重要なすべてのエンターテイメントを追加、アクセス、共有する機能を提供するアプリケーションです。1つの強力なアプリを使用して、50,000以上のオンデマンドタイトルと何百ものライブTVチャンネル、さらに独自の個人メディアコレクションを備えています。

AirSonicは無料のウェブベースのメディアストリーマーで、音楽へのユビキタスなアクセスを提供します。

TubeSyncは、YouTube用のPVR(パーソナルビデオレコーダー)です。または、Sonarrのように、しかしYouTubeのために(組み込みのダウンロードクライアントで)。YouTubeからチャンネルやプレイリストをローカルディレクトリに同期し、メディアがダウンロードされるとメディアサーバーを更新するように設計されています。

Castopodは、視聴者と関わり、交流したいポッドキャスター向けに作られたオープンソースのホスティングプラットフォームです。

RuneAudioは、組み込みハードウェアをHi-Fi音楽プレーヤーに変える無料のオープンソースソフトウェアです。

Volumio(オーディオファン音楽プレーヤー)は非常に強力で便利な音楽アグリゲータですが、今ではVolumioはあらゆる種類の異なる状況で素晴らしい結果でも使用できます。

Snapcastはマルチルームのクライアント/サーバーオーディオプレーヤーで、すべてのクライアントがサーバーと時間同期され、完全に同期されたオーディオを再生します。これはスタンドアロンプレーヤーではなく、既存のオーディオプレーヤーをSonosのようなマルチルームソリューションに変える拡張機能です。

マップ

このページのトップへ戻る

MapTiler Serverは、独自のサーバーまたはラップトップから全世界の自己ホスト型航空写真および衛星画像マップです。

KelperJsはオープンソースのフルスタックジオソーシャルネットワークプラットフォームです。

OpenStreetMap(OSM)は世界地図で、あなたのような人々によって作成され、オープンライセンスの下で自由に使用できます。ホスティングは、UCL、Fastly、Bytemark Hosting、およびその他のパートナーによってサポートされています。

uMapは、OpenStreetMapレイヤーで1分でマップを作成し、サイトに埋め込むことができるツールです。

写真

このページのトップへ戻る

PhotoPrism®は、写真コレクションを閲覧、整理、共有するためのAI搭載アプリです。それはあなたの邪魔になることなく自動的にタグ付けし、写真を見つけるために最新の技術を利用しています。自宅、プライベートサーバー、またはクラウドで実行できます。

Immichは、携帯電話から直接高性能の自己ホスト型写真およびビデオバックアップソリューションです。

Piwigoは、Web用のフル機能の自己ホスト型オープンソースフォトギャラリーアプリケーションです。200以上のテンプレート、プラグイン、および設定が付属しており、写真の表示方法をパーソナライズできます。これにより、ユーザーはdigiKam、Shotwell、Lightroom、またはモバイルアプリケーションから写真をアップロードできます。最後に、ユーザーはギャラリーを作成し、クライアントに表示権限を与えることができます。個々の写真またはアルバム全体のダウンロード、コメントの投稿、評価の付与、お気に入りの写真のマーク付け、検索の実行を行うことができます。

Lycheeは、写真を管理および共有するために、サーバー上で実行できる見栄えがよく使いやすい写真管理システムです。

Photoviewは、写真家のために作られたシンプルでユーザーフレンドリーなフォトギャラリーで、何千もの高解像度の写真でディレクトリを簡単かつ迅速にナビゲートする方法を提供することを目指しています。

Gimme-iPhotos、pyicloudを使用してiCloudからローカルマシンに写真やビデオを同期させるツールです。

PyiCloudは、パイソンイスタがiCloudウェブサービスと対話できるようにするモジュールです。それは素晴らしいリクエストHTTPライブラリによって支えられています。

Cheveretoは、自分のサーバー上で美しくフル機能の画像ホスティングWebサイトを作成できる画像ホスティングソフトウェアです。

Got Your Back(GYB)は、HTTPS経由でGmailのAPIを使用してGmailのメッセージをコンピュータにバックアップするためのコマンドラインツールです。

ゲーム

このページのトップへ戻る

カートリッジは、Laravel+Vue.jsで作られた自己ホスト型ゲームライブラリです。

カートリッジの機能

  • ROMファイルをスキャンし、IGDBゲーム情報と照合する
  • ゲームの詳細と一緒にROMダウンロードリンクを提供する
  • ユーザーの作成とアクセス許可 (WIP) によるライブラリへのアクセスの管理
  • ユーザーがゲームをリクエストできるようにする (予定)
  • 選択したROMをJSエミュレータを使用してブラウザ内で再生する(予定)
  • プレイしたゲームやお気に入りのゲーム(ダウンロードできないゲームも含む)をトラックする(予定)

ムーンライトゲームストリーミングは、設定不要でインターネット経由でPCゲームからストリーミングできるプログラムです。あなたが別の部屋にいるか、あなたのゲームリグから数マイル離れているかどうかにかかわらず、ほぼすべてのデバイスからストリーミングします。サンシャインMoonlightのゲームストリームホストで、AMD、Intel、NVIDIA GPUをサポートする自己ホスト型の低レイテンシクラウドゲームソリューションです。これは、NVIDIAのゲームストリームのオープンソース実装です。


Chiakiは、PlayStation 4およびPlayStation 5 Remote Play for Linux、FreeBSD、OpenBSD、Android、macOS、Windows、Nintendo Switch、および潜在的にさらに多くのプラットフォーム向けのフリーでオープンソースのソフトウェアクライアントです。

ゲームエミュレータ

EmuDeckは、RetroArch設定、ベゼル、ゲームキューブ用のゲームパッド設定、Wii、Citra、SNESなど、レトロゲームのニーズに合わせてすべてを処理するツールです。EmuDeckはEmulationStation Desktop Editionをインストールし、すべてのカスタム構成を引き継ぎ、ROMパスなどを設定する必要はありません。

エミュレーションステーションデスクトップエディション(ES-DE)は、マルチプラットフォームのゲームコレクションからゲームを閲覧および起動するためのフロントエンドアプリケーションです。Unix/Linux、macOS(M1 & Intel)、および Windows で利用できます。

RetroPieは、ラズベリーパイ、ODroid C1 / C2、またはPCをレトロゲーム機に変えることができるエミュレータのフロントエンドです。Raspbian、EmulationStation、RetroArch、その他多くのプロジェクトに基づいて構築されており、お気に入りのアーケード、家庭用コンソール、クラシックPCゲームを最小限のセットアップでプレイできます。


RetroArch はエミュレーター、ゲームエンジン、メディアプレーヤー向けのフロントエンドです。それはあなたがその滑らかなグラフィカルインターフェイスを介してコンピュータやコンソールの広い範囲で古典的なゲームを実行することができます。設定も統一されているため、構成は一度に行われます。レトロアーチ フラットパック

カートリッジは、Laravel+Vue.jsで作られた自己ホスト型ゲームライブラリです。

カートリッジの機能

  • ROMファイルをスキャンし、IGDBゲーム情報と照合する
  • ゲームの詳細と一緒にROMダウンロードリンクを提供する
  • ユーザーの作成とアクセス許可 (WIP) によるライブラリへのアクセスの管理
  • ユーザーがゲームをリクエストできるようにする (予定)
  • 選択したROMをJSエミュレータを使用してブラウザ内で再生する(予定)
  • プレイしたゲームやお気に入りのゲーム(ダウンロードできないゲームも含む)をトラックする(予定)


カートリッジ UI

ドルフィンは、最近の2つの任天堂のビデオゲーム機、ゲームキューブとWiiのエミュレータです。これにより、PCゲーマーは、すべてのPCコントローラとの互換性、ターボスピード、ネットワークマルチプレイヤーなど、いくつかの機能強化が施されたフルHD(1080p)でこれら2つのコンソール用のゲームを楽しむことができます。

Citraはニンテンドー3DS用のオープンソースエミュレータで、お気に入りのゲームの多くをプレイできます。

yuzuは、Citraのクリエイターによるニンテンドースイッチ用の実験的なオープンソースエミュレータです。[

m64pはニンテンドー64エミュレータです。これは、Qt5で書かれた新しいmupen64plusフロントエンドであるmupen64plus-guiを使用しています。フロントエンドに期待されるすべてのもの(保存状態管理、一時停止、スクリーンショット)をサポートしています。

DeSmuMEはニンテンドーDSエミュレータです。

Snes9xは、ポータブルでフリーウェアのスーパー任天堂エンターテイメントシステム(SNES)エミュレータです。

bsnesは、パフォーマンス、機能、使いやすさに焦点を当てたスーパーファミコン(SNES)エミュレータです。

mGBAは、ゲームボーイアドバンスゲームを実行するための新しいエミュレータです。これは、多くの既存のゲームボーイアドバンスエミュレータよりも高速で正確であるだけでなく、他のエミュレータに欠けている機能を追加することを目指しています。

DOSBoxはオープンソースのDOSエミュレータで、主にDOSゲームの実行に焦点を当てています。

DOSBox ステージングは完全な x86 CPU エミュレーター (ホストアーキテクチャとは無関係) で、リアルモードまたはプロテクトモードを必要とする DOS プログラムを実行できます。

Flycastは、レイキャストから派生したマルチプラットフォームのセガドリームキャスト、ナオミ、アトミスウェーブエミュレータです。

PCSX2はプレイステーション2の「エミュレータ」であり、プレイステーション2コンソールを複製してPCでPS2ゲームをプレイできるようにする無料のプログラムです。

RPCS3は、実験的なオープンソースのSony PlayStation 3エミュレータおよびデバッガで、WindowsおよびLinux用のC ++で書かれています。RPCS3は、2011年5月に創設者のDHとHykemによって開発を開始しました。エミュレータは現在、VulkanとOpenGLを搭載した1800以上の商用タイトルを実行することができます。

MAMEはアーケードマシンエミュレータです。

xemu はオリジナルの Xbox エミュレーターです。

XeniaはXbox 360エミュレータです。

また、これらのサブレディットをチェックして、より優れたゲームエミュレータの推奨事項を確認してください

財団/プロジェクト

このページのトップへ戻る

Matterはスマートホーム技術のオープンスタンダードであり、単一のプロトコルを使用してMatter認定エコシステムでデバイスを動作させることができます。Matterは、スマートホーム向けの製品を開発している何百もの企業(Amazon、Apple、Google、Comcast、Zigbee Alliance、Connectivity Standards Alliance(CSA))の組織であるConnectivity Standards Allianceから来ています。

オープンソースハードウェア協会(OSHWA)は、オープンソースハードウェアを提唱する非営利団体です。TAPR Open Hardware License、CERNのオープンソース開発グループ、Open Source Initiative(OSI)などの他のイニシアチブと積極的に協力しながら、あらゆる種類のオープンソースハードウェア活動のハブとして機能することを目指しています。

Open Connectivity Foundationは、標準通信プラットフォーム、ブリッジング仕様、オープンソース実装、およびフォームファクタ、オペレーティングシステム、サービスプロバイダー、トランスポートテクノロジ、またはエコシステムに関係なくデバイスが通信できるようにする認定プログラムを提供することにより、消費者、企業、および業界に安全な相互運用性を確保することに専念しています。

Raspberry Pi Foundationは英国を拠点とする慈善団体で、若者がコンピューティングとデジタル技術の力を通じて自分の可能性を最大限に引き出すことを可能にすることを使命としています。

OpenSSF(Open Source Security Foundation)は、オープンソースのソフトウェアセキュリティを向上させるための共同作業のための業界横断的なフォーラムです。

OpenJS Foundation は、Appium、Dojo、jQuery、Node.js、webpack など、27 を超える重要なオープンソース JavaScript プロジェクトの最高のホームです。

EdgeX Foundryは、Linux Foundationの下にあるベンダー中立のプロジェクトです。このイニシアチブは、インダストリアルIoT市場におけるエッジコンピューティングアーキテクチャの基盤の簡素化と標準化という共通の目標に沿っており、エコシステムが大きな価値を付加できるようにします。

Eclipse Foundationは、オープンソース・ソフトウェアのコラボレーションとイノベーションのための成熟した、スケーラブルで商業的に優しい環境を、個人や組織のグローバル・コミュニティに提供します。

貯蔵

このページのトップへ戻る

ストレージ管理に役立つツール

精査は、スマートハードドライブS.M.A.R.T.モニタリング、履歴トレンド、および現実世界の障害しきい値のためのWebUIです。

DUA(ディスク使用量アナライザ)は、特定のディレクトリのディスク容量の使用状況について便利に学習するためのツールです。デフォルトでは並列であり、SSDを最大限に活用し、関連情報をできるだけ早く提供します。オプションで、余分なデータを削除し、rm よりも迅速に削除します。

Dirstat-rs は、Windirstat に似た高速でクロスプラットフォームのディスク使用 CLI です。

Dutreeは、Rustで書かれたファイルシステムの使用状況を分析するツールです。

ファイル・システム

このページのトップへ戻る

  • FSArchiver は、ファイルシステムの内容を圧縮アーカイブファイルに保存できるシステムツールです。ファイルシステムは、異なるサイズのパーティションに復元でき、別のファイルシステムに復元できます。

GlusterFSは、フリーでオープンソースのスケーラブルなネットワークファイルシステムです。Gluster はスケーラブルなネットワークファイルシステムです。一般的な既製のハードウェアを使用して、メディア ストリーミング、データ分析、およびその他のデータや帯域幅を大量に消費するタスク用の大規模な分散ストレージ ソリューションを作成できます。

Cephは、高成長のブロックストレージ、オブジェクトストア、データレイクの新しい標準としてオープンソースを採用しているデータセンターのオブジェクト、ブロック、およびファイルストレージのニーズに対応するように設計されたソフトウェア定義のストレージソリューションです。Cephは、CAPEXとOPEXのコストを基礎となるバルクコモディティディスク価格に合わせながら、エンタープライズスケーラブルなストレージを提供します。

Hadoop 分散ファイル・システム (HDFS) は、コモディティー・ハードウェア上で稼働する大規模なデータ・セットを処理する分散ファイル・システムです。これは、単一のApache Hadoopクラスタを数百(さらには数千)のノードにスケーリングするために使用されます。HDFSはApache Hadoopの主要コンポーネントの1つであり、その他はMapReduceYARNです

ZFSは、エンタープライズ対応のオープンソースファイルシステムおよびボリュームマネージャであり、前例のない柔軟性とデータ整合性への妥協のないコミットメントを備えています。

OpenZFSはオープンソースのストレージプラットフォームです。これには、従来のファイル・システムとボリューム・マネージャの両方の機能が含まれています。次のような多くの高度な機能があります。

  • データ破損に対する保護。
  • データとメタデータの両方の整合性チェック。
  • 継続的な整合性検証と自動「自己修復」修復。

Btrfsは、フォールトトレランス、修復、簡単な管理に焦点を当てながら、高度な機能を実装することを目的としたLinux用の最新のコピーオンライト(CoW)ファイルシステムです。その主な機能と利点は次のとおりです。

  • ファイルの完全なコピーを作成しないスナップショット
  • RAID - ソフトウェアベースのRAID 0、RAID 1、RAID 10のサポート
  • 自己修復 - データとメタデータのチェックサム、サイレントデータ破損の自動検出

MergerFSは、多数のコモディティストレージデバイスにわたるファイルのストレージと管理を簡素化することを目的としたユニオンファイルシステムです。これは mhddfs、unionfs、aufs に似ています。

合併FSの機能

  • 設定可能な動作/ファイルの配置
  • ファイルシステムを自由に追加または削除する機能
  • 個々のファイル・システム障害に対する耐性
  • 拡張属性 (xattr) のサポート
  • ファイル属性 (chattr) のサポート
  • ランタイム設定可能(xattrs経由)
  • 異機種混在のファイル・システム・タイプで動作
  • 書き込み中にファイルシステムの領域がなくなった場合のファイルの移動
  • ファイル作成時に読み取り専用ファイルシステムを無視する
  • 読み取り専用ファイルを基になるファイルへのシンボリックリンクに変換する
  • ハードリンクコピーオンライト/ CoW
  • POSIX ACL のサポート

Proxmox クラスター ファイル システム (PMXCFS) は、クラスター構成をすべてのクラスター ノードに透過的に配布するために使用されるファイル システムです。

UnionFS は Linux、FreeBSD、NetBSD 用のファイルシステムサービスで、 他のファイルシステム用のユニオンマウントを実装しています。これにより、ブランチと呼ばれる別々のファイルシステムのファイルとディレクトリを透過的にオーバーレイして、単一の一貫したファイルシステムを形成できます。

OverlayFS は、AUFS に似た最新のユニオンファイルシステムですが、より高速で実装が簡単です。これは通常、OpenWRTのような埋め込みデバイスで実行されているシステムで使用され、基本的な構成セットを保持し、同時にユーザーが変更を実行できるようにすると便利です。

Bcachefs は Linux 用の高度な新しいファイルシステムで、信頼性と堅牢性、そして最新のファイルシステムに期待される機能の完全なセットに重点を置いています。スケーラビリティは50 TB以上にテストされており、最終的にははるかに高い拡張が可能です。

Squashfs は Linux 用の圧縮された読み取り専用ファイルシステムです。zlib、lz4、lzo、または xz 圧縮を使用して、ファイル、i ノード、およびディレクトリを圧縮します。システム内の i ノードは非常に小さく、すべてのブロックはデータのオーバーヘッドを最小限に抑えるためにパックされます。

Apple File System (APFS) は、macOS 10.13 以降を使用する Mac コンピュータのデフォルトのファイルシステムで、強力な暗号化、スペース共有、スナップショット、高速ディレクトリサイズ設定、およびファイルシステムの基本改善を特長としています。

NTFS(新技術ファイル システム)は、Windows および Windows Server の最新バージョンのプライマリ ファイル システムです。セキュリティ記述子、暗号化、ディスク クォータ、豊富なメタデータなどの機能の完全なセットを提供し、クラスター共有ボリューム (CSV) と共に使用して、フェールオーバー クラスターの複数のノードから同時にアクセスできる継続的に使用可能なボリュームを提供できます。

exFAT(拡張ファイルアロケーションテーブル)は、FATファミリのファイルシステムでFAT32の後継であったファイルシステムです。USBフラッシュドライブやSDカードなどのフラッシュメモリ用に最適化されています。

書物

このページのトップへ戻る

  • セルフホスト型クックブックは、ドッカー作成ベースのレシピ、自己ホスト型アプリケーションおよびサービス用のクックブックです。

  • Geek's Cookbookは、独自の高可用性「プライベートクラウド」を確立し、それを使用してGitLab、Plex、NextCloudなどの自己ホスト型サービスを実行するためのガイドのコレクションです。

  • データベースブック(PDF)

ポッドキャスト

このページのトップへ戻る

  • セルフホスト型ポッドキャストは、クリスとアレックスの2人の長年の「セルフホスティング」の間のチャットショーで、レッスンを共有し、新しいレッスンを学ぶときに旅にあなたを連れて行きます。

  • 自己ホスト型SRE(サイトリアリティエンジニア)ポッドキャストは、私たちの自己ホスト型サイトリアリティエンジニアに感謝を言うためのフィードです!

ユーチューブチャンネル

このページのトップへ戻る

チュートリアルとリソース

このページのトップへ戻る

サブレディット

このページのトップへ戻る

ワイヤーガード

このページのトップへ戻る


WireGuard®は、最先端の暗号化を利用する簡単で高速で最新のVPNです。これは、大規模な頭痛を避けながら、IPsecよりも速く、よりシンプルで、よりスリムで、より有用であることを目指しています。OpenVPNよりもかなりパフォーマンスが高いことを意図しています。WireGuardは、組み込みインターフェイスとスーパーコンピュータの両方で実行するための汎用VPNとして設計されており、多くの状況に適しています。当初はLinuxカーネル用にリリースされましたが、現在はクロスプラットフォーム(Windows、macOS、BSD、iOS、Android)であり、広く展開可能です。現在、大規模な開発が行われていますが、すでに業界で最も安全で、最も使いやすく、最もシンプルなVPNソリューションと見なされている可能性があります。

Wiretrusteeは、デバイスを単一のプライベートネットワークに接続するWireGuard®ベースのメッシュネットワークです。

ワイヤーガードマネージャは、1分以内に独自のVPNを構築できるツールです。

TailscaleはWireGuardベースのアプリで、あらゆる規模のチームにとって安全でプライベートなネットワークを簡単にします。これは、あらゆる種類のNATトラバーサルソーサリーを使用して、ネットワークのコンピュータ間のオーバーレイネットワークのように機能します。

ヘッドスケールは、Tailscaleコーディネーションサーバーのオープンソースの自己ホスト型実装です。

Firezoneは、自己ホスト型のWireGuard®ベースのVPNサーバーとLinuxファイアウォールです。

NetBirdは、WireGuard®の上に構築されたオープンソースのVPN管理プラットフォームであり、組織や家庭向けの安全なプライベートネットワークを簡単に作成できます。

Mistbornは、ファイアウォール、広告ブロック、多要素WireGuard VPNアクセスなど、独自のクラウドサービスを簡単に立ち上げて管理するための安全なプラットフォームです。

Mistborn CLI は Mistborn のコマンドラインインターフェイスです

BoringTunは、移植性と速度のために設計されたWireGuard®プロトコルの実装です。何百万ものiOSおよびAndroidコンシューマデバイス、および数千のCloudflareLinuxサーバーに正常に展開されています。

PiVPNラズベリーパイ用に設計された最もシンプルなVPNインストーラです。

Algo VPNは、個人のWireGuardとIPsec VPNのセットアップを簡素化するAnsibleスクリプトのセットです。利用可能な最も安全なデフォルトを使用し、一般的なクラウドプロバイダーと連携します。

Pro Custodibusは、サイト間接続、どこからの安全なリモートアクセス、クラウドへの安全なアクセス(アマゾンウェブサービス、Google Cloud Platform、Microsoft Azureなど)など、さまざまなビジネスVPN(仮想プライベートネットワーク)ユースケースでWireGuardを管理するためのツールです。

DragoはWireGuard用の柔軟な構成マネージャで、異なるクラウドや物理的な場所に分散した異種ノードにまたがる安全なネットワークオーバーレイを簡単に構成できるように設計されています。Dragoは活発に開発されており、オープンソースコミュニティからの貢献を歓迎します。

Netmaker は、安全で高速なプライベート ネットワークを介して任意のコンピュータを接続し、中央サーバーから複数のネットワークを管理するのに役立つツールです。

Kiloは、WireGuard上に構築され、Kubernetes用に設計されたマルチクラウドネットワークオーバーレイです。Kilo は、データセンターとパブリッククラウドにまたがる暗号化されたレイヤー 3 ネットワークを提供することにより、クラスター内のノードを接続します。Kiloによって作成されたPodネットワークは、ノードが異なるネットワーク内やNATの背後にある場合でも、常に完全に接続されています。異なる場所にあるノードのプールが安全に通信できるようにすることで、Kiloはマルチクラウドクラスターの運用を可能にします。Kiloの設計により、クライアントはクラスタ上で実行されているサービスに安全にアクセスするためにクラスタにVPN接続できます。

サブスペースはシンプルな WireGuard VPN サーバー GUI です。

WG UI は、セルフサービスの Web UI を備えた WireGuard 用の基本的な自己完結型管理サービスです。

WireHoleは、ドッカー作成プロジェクトにおけるWireGuard、PiHole、およびUnboundの組み合わせであり、ユーザーが広告ブロック機能(Pihole経由)を備えた個人的に管理されたフルトンネルまたはスプリットトンネルのWireGuard VPNを迅速かつ簡単に作成および展開できるようにすることを目的としており、追加のプライバシーオプションを備えたDNSキャッシング(Unbound経由)。

Gluetunは、Goで書かれた複数のVPNプロバイダ用のシンDockerコンテナ内の軽いVPNクライアントで、OpenVPNまたはWireguard、DNS over TLSを使用し、いくつかのプロキシサーバーが組み込まれています。

Ethrは、golangで書かれたクロスプラットフォームのネットワークパフォーマンス測定ツールです。このプロジェクトの目標は、TCP、UDP、HTTP、HTTPS などの複数のプロトコルと、Windows、Linux、その他の Unix システムなどの複数のプラットフォームにわたって、帯域幅、接続、パケット、レイテンシ、損失、ジッターの包括的なネットワークパフォーマンス測定のためのネイティブツールを提供することです。

ネクストクラウド

このページのトップへ戻る


Nextcloudは、ファイル同期&共有および通信サーバー向けの業界をリードするオンプレミスのコンテンツコラボレーションプラットフォームです。それは完全にオープンソースであり、あなたはそれを自分でホストするか、あなたのためにそれをするために会社に支払うことができます。また、以下のリンクもご覧ください。


ネックスクラウドログイン画面

Nextcloud Hubは、ドキュメントの共有と共同作業、電子メールの送受信、カレンダーの管理、データ漏洩のないビデオチャットを可能にするツールです。完全にオンプレミスのソリューションとして、Nextcloud Hubはコンプライアンスやセキュリティのリスクなしにオンラインコラボレーションの利点を提供します。


Nexcloud Hub

ネクストクラウドデスクトップクライアントは、ネクストクラウドサーバーからコンピュータとファイルを同期するためのツールです。

Nextcloud Deckは、Nextcloudと統合されたチームのための個人的な計画とプロジェクト編成を目的としたカンバンスタイルの組織ツールです。

Nextcloud Filesは、従業員が自分のファイル、写真、ドキュメントに簡単にアクセスして作業し、チームメンバー、顧客、パートナーと共有およびコラボレーションできるツールツールです。したがって、IT部門は、共有相手以外の誰もこれらのファイルにアクセスできないことを知っています。

Nextcloud Talkは、Microsoft TeamsやSlackなどの他のチームコラボレーションプラットフォームよりもコミュニケーションを保護し、データがサーバーに確実に残るようにするツールです。また、メタデータの漏洩を防ぐことで、他の暗号化通信技術よりもさらに進んでいます。

Nextcloud Homeは、ドキュメント、カレンダー、連絡先、写真を自宅のサーバー、Nextcloudのプロバイダーの1つ、または信頼できるデータセンターに保存できるツールです。

Nextcloud Enterpriseは、ミッションクリティカルな環境向けに最適化およびテストされたソフトウェアを専門組織に提供するサービスです。

Nextcloud Outlook統合は、大きな添付ファイルを置き換えるか、Microsoft Outlookのカレンダーと連絡先を統合するためにファイルを自動的にアップロードするツールです。

NextcloudのCollabora Onlineは、共同編集機能を備えた強力なLibreOfficeベースのオンラインオフィススイートで、すべての主要なドキュメント、スプレッドシート、プレゼンテーションファイル形式をサポートし、最新のすべてのブラウザで動作します。

NextcloudでのONLYOFFICE統合は、ユーザーがオフィスドキュメントでチームメンバーとリアルタイムで共同作業できるようにするサービスです。Microsoft Office形式との互換性があり、毎回完璧なドキュメントを意味します。

Nextcloud VM(仮想マシンアプライアンス)は、慎重に作成された* nixスクリプトファミリのセットで、ホーム/SMEサーバー用のNextcloudインスタンスとRaspberry Pi 4用のスクリプトの品質管理されたインストールをインタラクティブにガイドします。それはコミュニティが開発し、維持しています。

ラズベリーパイ

このページのトップへ戻る


ラズベリーパイボードのモデル

このページのトップへ戻る

ラズベリーパイ4モデルB

ラズベリーパイ4をチェックしてください

ラズベリーパイ4モデルBのハードウェア仕様

  • ブロードコムBCM2711、クアッドコア皮質- A72(ARM v8)64ビットSoC @ 1.5GHzの
  • 2GB、4GB、または8GB LPDDR4-3200 SDRAM(モデルによって異なります)
  • 2.4 GHz および 5.0 GHz IEEE 802.11ac ワイヤレス
  • Bluetooth 5.0、BLE
  • ギガビットイーサネット
  • 2つのUSB 3.0ポート。2 つの USB 2.0 ポート。
  • ラズベリーパイ標準40ピンGPIOヘッダー(以前のPiボードと完全に下位互換性があります)
  • 2×マイクロHDMIポート(最大4kp60対応)
  • OpenGL ES 3.0グラフィックス

ラズベリーパイ400パーソナルコンピュータキット

ラズベリーパイ400パーソナルコンピュータキットをチェックしてください

ラズベリーパイ 400 ハードウェア仕様

  • ブロードコムBCM2711、クアッドコア皮質- A72(ARM v8)64ビットSoC @ 1.8GHzの
  • 4ギガバイトLPDDR4から3200 SDRAM
  • 2.4 GHz および 5.0 GHz IEEE 802.11ac ワイヤレス
  • Bluetooth 5.0、BLE
  • ギガビットイーサネット
  • 2つのUSB 3.0ポート。2 つの USB 2.0 ポート。
  • ラズベリーパイ標準40ピンGPIOヘッダー
  • 2×マイクロHDMIポート(最大4kp60対応)
  • OpenGL ES 3.0グラフィックス

ラズベリーパイピコマイクロコントローラ

ラズベリーパイピコをチェックしてください

ラズベリーパイピコハードウェア仕様

  • RP2040マイクロコントローラチップは、英国のラズベリーパイによって設計された
  • デュアルコアArm Cortex-M0+プロセッサ、最大133MHzの柔軟なクロック
  • 264KBオンチップSRAM
  • 2MBオンボードQSPIフラッシュ
  • 26個の多機能GPIOピン(3個のアナログ入力を含む)
  • 2 × UART、2 × SPI コントローラ、2 × I2C コントローラ、16 × PWM チャネル
  • 1 × USB 1.1 コントローラーと PHY (ホストとデバイスをサポート)
  • カスタムペリフェラルサポート用の8つの×プログラマブルI/O(PIO)ステートマシン
  • キャステレーテッドモジュールにより、キャリアボードに直接はんだ付けが可能
  • USB経由の大容量記憶装置を使用したドラッグアンドドロッププログラミング
  • 低電力スリープモードと休止モード
  • 正確なオンチップクロック
  • 温度センサー
  • 加速整数および浮動小数点ライブラリを内蔵

ラズベリーパイOS。すべてのラズベリーパイデバイスのデフォルトオペレーティングシステム

チェックアウトラズベリーパイOSの

ラズベリーパイ学習リソース

このページのトップへ戻る

Raspberry PiはARM搭載のシングルボードコンピュータ(SBC)で、クレジットカードのサイズで、約$ 35の費用がかかります。

Raspberry Pi Foundationは英国を拠点とする慈善団体で、コンピューティングとデジタル制作の力を世界中の人々の手に渡すために活動しています。

ラズベリーパイプロジェクトを始める

ラズベリーパイのオンライン学習

ラズベリーパイトレーニングプログラム

Udemyのラズベリーパイオンラインコース

コースラのラズベリーパイオンラインコース

CourseraのRaspberry PiプラットフォームとPythonプログラミングコース

edXのオンラインコースでラズベリーパイを学ぶ

LinkedIn学習に関するラズベリーパイオンライントレーニングコース

FutureLearn のラズベリーパイコースを始める

ラズベリーパイのホームアシスタント

PiSwitch:独自のニンテンドースイッチスタイルのコンソールを構築する

ラズベリーパイオペレーティングシステム

このページのトップへ戻る

ラズベリーパイOS

Hass.io(ホームアシスタントOS)

オムニロム(アンドロイド 11) ASOPに基づいて

Manjaro Linux ARM

Arch Linux ARM

ラズベリーパイのためのUbuntu MATEの

ラズベリーパイのためのUbuntuデスクトップ

ラズベリーパイのUbuntuコア

Ubuntu Server for ARM

Fedora ARM

ラズベリーパイのためのKali Linux

ツイスターOS

タイタスピ

レトロアーチ

レトロパイ

リブレエレク

オスマック

RISC OS

ディートピ

ウィンドウズ 10 IoT コア

ラズベリーパイツール

このページのトップへ戻る

ズベリーパイイメージャは、ラズベリーパイOSやその他のオペレーティングシステムをmicroSDカードにインストールするための迅速かつ簡単な方法で、ラズベリーパイで使用する準備ができています。

ラズベリーパイロケータは、ラズベリーパイ4モデルB、コンピューティングモジュール4、パイゼロ2 W、および異なる国の複数の小売業者間でピコの可用性を追跡するためのウェブサイトです。

ラズベリーパイネットワークインストール(ベータ版)は、イーサネットケーブルを使用してインターネットからダウンロードすることにより、ラズベリーパイ4、またはラズベリーパイ400上で直接ラズベリーパイイメージャーアプリケーションを起動するために使用できる機能です。ラズベリーパイのメモリ内で実行されるラズベリーパイイメージャーアプリケーションは、通常と同じように、オペレーティングシステムを空のSDカードまたはUSBディスクにフラッシュするために使用できます。

Raspberry Piブートローダは、システムのブートローダを格納するためにEEPROM(電気的に消去可能なプログラマブル読み取り専用メモリ)を利用するベータ版で利用可能になった機能です。このEEPROMは、Piのメインボード上にある永続ストレージです。代わりにEEPROMを使用する利点は、Raspberry Pi 4がストレージを接続することなくタスクを実行できることです。

Etcherはオープンソースのクロスプラットフォームソフトウェアで、オペレーティングシステムのイメージをmicroSDカードまたはUSBデバイスに簡単にフラッシュできます。

ホームアシスタントは、ローカルコントロールとプライバシーを第一に考えるオープンソースのホームオートメーションです。ホームアシスタントは、ラズベリーパイで素晴らしい動作するいじり屋やDIY愛好家の世界的なコミュニティによって供給されています。

グラディスアシスタントは、プライバシー優先のオープンソースのホームアシスタントで、ラズベリーパイでうまく動作します。

Kodi for Raspberry Piは、XBMC/Kodi Foundationによって開発されたフリーでオープンソースのメディアプレーヤーアプリケーションです。

Pi-holeは、プライベートネットワークでの使用を目的としたクライアント側のソフトウェアをインストールすることなく、不要なコンテンツからデバイスを保護するDNSシンクホールです。Raspberry Pi などのネットワーク機能を備えた組み込みデバイスで使用するために設計されていますが、Linux およびクラウド実装を実行している他のマシンでも使用できます。

PiKVMは非常にシンプルで完全に機能するラズベリーパイベースのKVM over IPです。

PiShrinkは、起動時にSDカードの最大サイズにサイズ変更されるpiイメージを自動的に縮小するbashスクリプトです。

RPiPlayは、iOS 9以降をサポートするRaspberry Pi用のAirPlayミラーリングサーバーのオープンソース実装です。

Gpiozeroは、ラズベリーパイを備えたGPIO(汎用入出力)デバイスへのシンプルなインターフェイスです。

Balena Soundは、ラズベリーパイを使用して既存のオーディオデバイス用のシングルまたはマルチルームストリーマーです!Bluetooth、Airplay、Spotify Connectをサポートしています。

OpenBalenaは、接続されたデバイスを展開および管理するためのプラットフォームです。

ラズベリーパイのアップグレード

このページのトップへ戻る

Pi-Shop USのラズベリーパイケース

The Pi HutのRaspberry Pi Cases(ラズベリーパイケース)

X825拡張ボードは、最新のRaspberry Pi 4モデルBのための完全なストレージソリューションを提供し、最大4TB 2.5インチSATAハードディスクドライブ(HDD)/ソリッドステートドライブ(SSD)をサポートします。

Sabrent M.2 SSD [NGFF] から USB 3.0 / SATA III 2.5 インチアルミニウムエンクロージャアダプタ

サムスン 970 EVO 250ギガバイト - NVMe PCIe M.2 2280 SSD

ウエスタンデジタル1TB WDブルーSN550 NVMe内部SSD

サムスンT5ポータブルSSD

サムスンのSSD 860 EVO 250ギガバイトのmSATAの内部SSD

サムスン 850 EVO 120ギガバイトのSSDのmSATA

グラファナ

このページのトップへ戻る


グラファナ学習リソース

Grafana は、データのクエリと視覚化、視覚化に基づいてダッシュボードの作成と共有を可能にする分析プラットフォームです。プロメテウス、ロキ、Elasticsearch、InfluxDB、Postgres、Fluentd、Fluentbit、Logstash などの複数のソースからのメトリック、ログ、トレースを簡単に視覚化できます。

グラファナを使い始める

グラファナコミュニティ

グラファナプロフェッショナルサービストレーニング|グラファナ研究所

Grafana Pro Training AWS |グラファナ研究所

グラファナチュートリアル

ウデミーのトップグラファナコース

グラファナオンライントレーニングコース |LinkedIn Learning

グラファナトレーニングコース - ノーブルプログ

Courseraでメトリクスコースを視覚化するためのグラファナの設定

グラファナツール

Grafana Cloudは、メトリック、トレース、ログをGrafanaと統合する、構成可能な観測可能性プラットフォームです。Prometheus、Loki、Tempo など、最高のオープンソースのオブザーバビリティソフトウェアを、オブザーバビリティスタックのインストール、保守、スケーリングのオーバーヘッドなしに活用できます。


Grafana Cloud Integrations.出典:グラファナ

Grafana Enterprise は、自己管理環境でスケーラビリティ、コラボレーション、運用、およびガバナンスを向上させる機能を含むサービスです。


Grafana Enterprise Stack.出典:グラファナ

Grafana Tempo はオープンソースの大規模分散型 tarcing バックエンドです。テンポはコスト効率が高く、操作に必要なオブジェクトストレージのみを必要とし、グラファナ、ロキ、プロメテウスと深く統合されています。

Grafana MetricTankは、Grafana Labsによって開発されたGraphite用のマルチテナント時系列プラットフォームです。MetricTank は、大規模環境向けに高可用性 (HA) と効率的な長期ストレージ、検索、および処理を提供します。

Grafana Tanka は、Jsonnet 言語を搭載した Kubernetes クラスター用の堅牢な構成ユーティリティです。

Grafana Lokiは、Prometheusに触発された水平方向にスケーラブルで可用性の高い(HA)マルチテナントログ集約システムです。

Cortexは、ユーザーがサーバーの障害によるgrpasのギャップなしに、多くのPrometheusサーバーからのメトリックを1か所で照会できるプロジェクトです。また、Cortexでは、長期的なキャパシティプランニングとパフォーマンス分析のためにプロメテウスのメトリックを保存できます。

グラファイトはオープンソースの監視システムです。

ネットワーキング

このページのトップへ戻る


ネットワークツールと概念

cURLは、さまざまなネットワークプロトコル(HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMBS、SMTP、SMTP、SMTPS)を使用してデータを転送するためのライブラリとコマンドラインツールを提供するコンピュータソフトウェアプロジェクトです。cURLは、自動車、テレビ、ルーター、プリンター、オーディオ機器、携帯電話、タブレット、セットトップボックス、メディアプレーヤーでも使用されており、数千のソフトウェアアプリケーションのインターネット転送エンジンです。

cURL ファジーザーは、curl プロジェクトの品質保証テストです。

DoH は、DoH (DNS-over-HTTPS) の名前解決とルックアップのためのスタンドアロン アプリケーションです。

Authelia はオープンソースの高可用性認証サーバーであり、NGINX の背後で実行されるアプリケーションにシングルサインオン機能と 2 要素認証を提供します。

nginx(エンジンx)は、HTTPおよびリバースプロキシサーバー、メールプロキシサーバー、および汎用TCP / UDPプロキシサーバーであり、もともとIgor Sysoevによって書かれています。

Proxmox仮想環境(VE)は、エンタープライズ仮想化のための完全なオープンソースプラットフォームです。VMとコンテナ、ソフトウェア定義のストレージとネットワーク、高可用性クラスタリング、および複数のすぐに使用できるツールを単一のソリューションで簡単に管理できる組み込みのWebインターフェイスが含まれています。

Wiresharkは、ネットワークのトラブルシューティング、分析、および通信プロトコル開発に一般的に使用される非常に人気のあるネットワークプロトコルアナライザです。利用可能な他の便利なWiresharkツールの詳細をご覧ください。

HTTPie はコマンド ラインの HTTP クライアントです。その目標は、CLI と Web サービスとの対話をできるだけ人間にやさしいものにすることです。HTTPie は、テスト、デバッグ、および一般に API および HTTP サーバーとの対話のために設計されています。

HTTPStat は、カール統計をシンプルなレイアウトで視覚化するツールです。

Wuzz は HTTP インスペクション用のインタラクティブな cli ツールです。これは、「cURLとしてコピー」機能を使用して、ブラウザのネットワークインスペクタからコピーされた要求を検査/変更するために使用できます。

Websocatは、高度なsocatのような関数を持つ ws:// のためのnetcat(またはcurl)のような、WebSockets用のオマンドラインクライアントです。

• Connection: In networking, a connection refers to pieces of related information that are transferred through a network. This generally infers that a connection is built before the data transfer (by following the procedures laid out in a protocol) and then is deconstructed at the at the end of the data transfer.

• Packet: A packet is, generally speaking, the most basic unit that is transferred over a network. When communicating over a network, packets are the envelopes that carry your data (in pieces) from one end point to the other.

パケットには、送信元と宛先、タイムスタンプ、ネットワークホップなど、パケットに関する情報を含むヘッダー部分があります。パケットの主要部分には、転送される実際のデータが含まれています。ボディまたはペイロードと呼ばれることもあります。

• Network Interface: A network interface can refer to any kind of software interface to networking hardware. For instance, if you have two network cards in your computer, you can control and configure each network interface associated with them individually.

ネットワークインタフェースは、物理デバイスに関連付けることも、仮想インタフェースの表現にすることもできます。ローカルマシンへの仮想インタフェースである「ループバック」デバイスは、この例です。

• LAN: LAN stands for "local area network". It refers to a network or a portion of a network that is not publicly accessible to the greater internet. A home or office network is an example of a LAN.

• WAN: WAN stands for "wide area network". It means a network that is much more extensive than a LAN. While WAN is the relevant term to use to describe large, dispersed networks in general, it is usually meant to mean the internet, as a whole.

インターフェイスが WAN に接続されている場合、一般に、インターネット経由で到達可能であると見なされます。

• Protocol: A protocol is a set of rules and standards that basically define a language that devices can use to communicate. There are a great number of protocols in use extensively in networking, and they are often implemented in different layers.

低レベルプロトコルには、TCP、UDP、IP、および ICMP があります。これらの下位プロトコルに基づいて構築されたアプリケーション層プロトコルのよく知られた例としては、HTTP (Web コンテンツにアクセスするため)、SSH、TLS/SSL、および FTP があります。

• Port: A port is an address on a single machine that can be tied to a specific piece of software. It is not a physical interface or location, but it allows your server to be able to communicate using more than one application.

• Firewall: A firewall is a program that decides whether traffic coming into a server or going out should be allowed. A firewall usually works by creating rules for which type of traffic is acceptable on which ports. Generally, firewalls block ports that are not used by a specific application on a server.

• NAT: Network address translation is a way to translate requests that are incoming into a routing server to the relevant devices or servers that it knows about in the LAN. This is usually implemented in physical LANs as a way to route requests through one IP address to the necessary backend servers.

• VPN: Virtual private network is a means of connecting separate LANs through the internet, while maintaining privacy. This is used as a means of connecting remote systems as if they were on a local network, often for security reasons.

ネットワーク層

While networking is often discussed in terms of topology in a horizontal way, between hosts, its implementation is layered in a vertical fashion throughout a computer or network. This means is that there are multiple technologies and protocols that are built on top of each other in order for communication to function more easily. Each successive, higher layer abstracts the raw data a little bit more, and makes it simpler to use for applications and users. It also allows you to leverage lower layers in new ways without having to invest the time and energy to develop the protocols and applications that handle those types of traffic.

As data is sent out of one machine, it begins at the top of the stack and filters downwards. At the lowest level, actual transmission to another machine takes place. At this point, the data travels back up through the layers of the other computer. Each layer has the ability to add its own "wrapper" around the data that it receives from the adjacent layer, which will help the layers that come after decide what to do with the data when it is passed off.

One method of talking about the different layers of network communication is the OSI model. OSI stands for Open Systems Interconnect.This model defines seven separate layers. The layers in this model are:

• Application: The application layer is the layer that the users and user-applications most often interact with. Network communication is discussed in terms of availability of resources, partners to communicate with, and data synchronization.

• Presentation: The presentation layer is responsible for mapping resources and creating context. It is used to translate lower level networking data into data that applications expect to see.

• Session: The session layer is a connection handler. It creates, maintains, and destroys connections between nodes in a persistent way.

• Transport: The transport layer is responsible for handing the layers above it a reliable connection. In this context, reliable refers to the ability to verify that a piece of data was received intact at the other end of the connection. This layer can resend information that has been dropped or corrupted and can acknowledge the receipt of data to remote computers.

• Network: The network layer is used to route data between different nodes on the network. It uses addresses to be able to tell which computer to send information to. This layer can also break apart larger messages into smaller chunks to be reassembled on the opposite end.

• Data Link: This layer is implemented as a method of establishing and maintaining reliable links between different nodes or devices on a network using existing physical connections.

• Physical: The physical layer is responsible for handling the actual physical devices that are used to make a connection. This layer involves the bare software that manages physical connections as well as the hardware itself (like Ethernet).

TCP/IP モデルは、より一般的にはインターネット・プロトコル・スイートとして知られており、より単純で広く採用されているもう 1 つの階層化モデルです。これは 4 つの別々のレイヤーを定義し、そのうちのいくつかは OSI モデルと重複しています。

• Application: In this model, the application layer is responsible for creating and transmitting user data between applications. The applications can be on remote systems, and should appear to operate as if locally to the end user.

通信は、ピア ネットワーク間で行われます。

• Transport: The transport layer is responsible for communication between processes. This level of networking utilizes ports to address different services. It can build up unreliable or reliable connections depending on the type of protocol used.

• Internet: The internet layer is used to transport data from node to node in a network. This layer is aware of the endpoints of the connections, but does not worry about the actual connection needed to get from one place to another. IP addresses are defined in this layer as a way of reaching remote systems in an addressable manner.

• Link: The link layer implements the actual topology of the local network that allows the internet layer to present an addressable interface. It establishes connections between neighboring nodes to send data.

インターフェイス

インターフェイスは、コンピュータのネットワーク通信ポイントです。各インターフェイスは、物理ネットワークデバイスまたは仮想ネットワークデバイスに関連付けられています。通常、サーバーには、お持ちのイーサネットまたはワイヤレスインターネットカードごとに1つの設定可能なネットワークインターフェイスがあります。さらに、「ループバック」またはlocalhostインタフェースと呼ばれる仮想ネットワークインタフェースを定義します。これは、1 台のコンピューター上のアプリケーションおよびプロセスを他のアプリケーションおよびプロセスに接続するためのインターフェースとして使用されます。これは、多くのツールで "lo" インターフェイスとして参照されていることがわかります。

ネットワークプロトコル

ネットワーキングは、互いに重ねていくつかの異なるプロトコルをピギーバックすることによって機能します。このようにして、1つのデータを、互いにカプセル化された複数のプロトコルを使用して送信することができます。

メディアアクセス制御(MAC)は、特定のデバイスを区別するために使用される通信プロトコルです。各デバイスは、インターネット上の他のすべてのデバイスと区別する製造プロセス中に一意のMACアドレスを取得することになっています。MAC アドレスでハードウェアをアドレッシングすると、動作中に上部のソフトウェアがその特定のデバイスの名前を変更する場合でも、一意の値でデバイスを参照できます。メディア アクセス制御は、定期的に対話する可能性のあるリンク層の唯一のプロトコルの 1 つです。

IPプロトコルは、インターネットを動作させるための基本的なプロトコルの1つです。IPアドレスは各ネットワーク上で一意であり、マシンがネットワークを介して互いにアドレス指定できるようにします。これは、IP / TCPモデルのインターネット層に実装されています。ネットワークは互いにリンクできますが、ネットワーク境界を越えるときはトラフィックをルーティングする必要があります。このプロトコルは、信頼性の低いネットワークと、同じ宛先への複数のパスの間で動的に変更できることを前提としています。このプロトコルには、さまざまな実装があります。今日の最も一般的な実装はIPv4ですが、IPv6は利用可能なIPv4アドレスの不足とプロトコル機能の向上により、代替手段として人気が高まっています。

ICMP:インターネット制御メッセージプロトコルは、可用性またはエラー状態を示すためにデバイス間でメッセージを送信するために使用されます。これらのパケットは、ping やトレースルートなどのさまざまなネットワーク診断ツールで使用されます。通常、ICMP パケットは、異なる種類のパケットが何らかの問題に遭遇したときに送信されます。基本的には、ネットワーク通信のフィードバックメカニズムとして使用されます。

TCP: 伝送制御プロトコルは、IP/TCP モデルのトランスポート層に実装され、信頼性の高い接続を確立するために使用されます。TCP は、データをパケットにカプセル化するプロトコルの 1 つです。次に、下位層で使用可能なメソッドを使用して、これらを接続のリモート エンドに転送します。一方、エラーをチェックし、特定の部分を再送するように要求し、情報を1つの論理部分に再構成してアプリケーション層に送信することができます。このプロトコルは、3ウェイハンドシェイクと呼ばれるシステムを使用して、データ転送の前に接続を構築します。これは、通信の両端が要求を認識し、データの信頼性を確保する方法に同意する方法です。データが送信されると、同様の 4 方向ハンドシェイクを使用して接続が切断されます。TCPは、WWW、FTP、SSH、電子メールなど、インターネットの最も一般的な用途の多くに最適なプロトコルです。私たちが今日知っているインターネットは、TCPなしではここにはなかったと言っても過言ではありません。

UDP:ユーザーデータグラムプロトコルは、TCPの一般的なコンパニオンプロトコルであり、トランスポート層にも実装されています。UDPとTCPの根本的な違いは、UDPが信頼性の低いデータ転送を提供することです。接続のもう一方の端でデータが受信されたかどうかは検証されません。これは悪いことのように聞こえるかもしれませんが、多くの目的のために、それはそうです。ただし、一部の機能にとっても非常に重要です。データが受信され、データの再送信を強制されたという確認を待つ必要はありませんが、UDPはTCPよりもはるかに高速です。リモートホストとの接続は確立されず、単にそのホストにデータを起動し、受け入れられるかどうかは気にしません。UDPは単純なトランザクションなので、ネットワークリソースのクエリなどの単純な通信に役立ちます。また、状態は維持されないため、1 台のマシンから多数のリアルタイム クライアントにデータを送信するのに最適です。これにより、VOIP、ゲーム、および遅延を許容できないその他のアプリケーションに最適です。

HTTP:ハイパーテキスト転送プロトコルは、Web上の通信の基礎を形成するアプリケーション層で定義されたプロトコルです。HTTP は、要求しているものをリモート・システムに通知するいくつかの関数を定義します。たとえば、GET、POST、および DELETE はすべて、要求されたデータと異なる方法で対話します。

FTP:ファイル転送プロトコルはアプリケーション層にあり、あるホストから別のホストに完全なファイルを転送する方法を提供します。本質的に安全でないため、パブリックなダウンロード専用リソースとして実装されていない限り、外部に面したネットワークには推奨されません。

DNS:ドメインネームシステムは、インターネットリソースに人間に優しい命名メカニズムを提供するために使用されるアプリケーション層プロトコルです。これは、ドメイン名をIPアドレスに結び付け、ブラウザで名前でサイトにアクセスできるようにするものです。

SSH: セキュア・シェルは、アプリケーション層に実装された暗号化されたプロトコルで、リモート・サーバーとセキュアな方法で通信するために使用できるものです。エンドツーエンドの暗号化とユビキタス性のために、このプロトコルを中心に多くの追加技術が構築されています。私たちがカバーしていない他の多くのプロトコルがあり、それらは同様に重要です。ただし、これはインターネットとネットワークを可能にするいくつかの基本技術の概要を示すはずです。

REST(REpresentational State Transfer)は、Web上のコンピュータシステム間で標準を提供し、システム同士の通信を容易にするアーキテクチャスタイルです。

JSON Web トークン (JWT) は、2 つの当事者間で転送される要求を表すコンパクトな URL セーフな手段です。JWT の要求は、JSON Web 署名 (JWS) を使用してデジタル署名された JSON オブジェクトとしてエンコードされます。

OAuth 2.0 は、アプリケーションが Amazon 、Google、Facebook、Microsoft、Twitter GitHub、DigitalOcean などの HTTP サービス上のユーザー アカウントに制限されたアクセスを取得できるようにするオープン ソースの承認フレームワークです。これは、ユーザーアカウントをホストするサービスにユーザー認証を委任し、サードパーティ製アプリケーションがユーザーアカウントにアクセスすることを承認することによって機能します。

港湾労働者

このページのトップへ戻る



コンテナアーキテクチャ。出典:Containerd.io

ドッカー学習リソース

ドッカートレーニングプログラム

Docker Certified Associate (DCA) 認定

ドッカードキュメント|ドッカーのドキュメント

ドッカーワークショップ

Udemyのドッカーコース

コースラのドッカーコース

edXのドッカーコース

Linkedinラーニングに関するドッカーコース

ドッカーツール

Dockerは、アプリケーションを開発、出荷、および実行するためのオープンプラットフォームです。Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、Microsoftを含むクラウド、Linux、およびWindowsベンダーと協力してソフトウェアをすばやく提供できます。

Docker Enterprise は、CentOS、Red Hat Enterprise Linux (RHEL)、Ubuntu、SUSE Linux Enterprise Server (SLES)、Oracle Linux、Windows Server 2016、およびクラウドプロバイダーの AWS および Azure 向けのソフトウェア、サポートおよび認定済みコンテナプラットフォームを含むサブスクリプションです。2019年11月、Dockerのエンタープライズプラットフォーム事業はMirantisに買収されました

Docker Desktop は、コンテナー化されたアプリケーションとマイクロサービスの構築と共有のための MacOS および Windows マシン用のアプリケーションです。Docker Desktop は、コンテナー化されたアプリケーションをデスクトップ上で設計および配信するために必要な速度、選択肢、およびセキュリティを提供します。Dockerデスクトップには、Dockerアプリ、開発者ツール、Kubernetes、およびプロダクションDockerエンジンへのバージョン同期が含まれています。

Docker Hub は、コンテナー イメージの世界最大のライブラリおよびコミュニティです。ソフトウェア ベンダー、オープン ソース プロジェクト、およびコミュニティから 100,000 を超えるコンテナー イメージを参照します。

Docker Compose は、マルチコンテナー アプリケーションの定義と共有を支援するために開発されたツールです。Docker Compose を使用すると、サービスを定義する YAML ファイルを作成し、1 つのコマンドですべてをスピンアップまたは破棄できます。

Docker Swarm は Docker ネイティブのクラスタリング システム swarm で、Docker ホストのクラスターを制御し、それを単一の "仮想" ホストとして公開するシンプルなツールです。

Dockerfile は、ユーザーがコマンド ラインで呼び出してイメージをアセンブルできるすべてのコマンドを含むテキスト ドキュメントです。docker ビルドを使用すると、ユーザーは、複数のコマンド ライン命令を連続して実行する自動ビルドを作成できます。

Docker Containers は、コードとそのすべての依存関係をパッケージ化するソフトウェアの標準ユニットであり、アプリケーションをあるコンピューティング環境から別のコンピューティング環境に迅速かつ確実に実行します。

Docker Engine は、さまざまな Linux (CentOS、Debian、Fedora、Oracle Linux、RHEL、SUSE、および Ubuntu) および Windows Server オペレーティング システム上で実行されるコンテナー ランタイムです。Dockerは、シンプルなツールと、Dockerエンジンで実行されるコンテナ内のすべてのアプリケーションの依存関係をバンドルするユニバーサルパッケージングアプローチを作成します。

Docker Imagesは、コード、ランタイム、システムツール、システムライブラリ、設定など、アプリケーションの実行に必要なすべてのものを含む、軽量でスタンドアロンの実行可能なソフトウェアパッケージです。イメージには、再利用性を高め、ディスク使用量を減らし、各ステップをキャッシュできるようにすることで docker ビルドを高速化する中間レイヤーがあります。これらの中間層は、デフォルトでは表示されません。SIZE は、イメージとそのすべての親イメージによって占有される累積スペースです。

Dockerネットワークは、1つ以上のネットワークに関する詳細情報を表示するものです。

Dockerデーモンは、ユーザーが手動で開始するのではなく、システムユーティリティによって開始されるサービスです。これにより、コンピュータの再起動時にDockerを自動的に起動することが容易になります。Dockerを起動するコマンドは、オペレーティングシステムによって異なります。現在、Linuxカーネルの多くの機能に依存しているため、Linux上でのみ動作しますが、オペレーティングシステムユーティリティを構成することで、MacOSとWindowsでもDockerを実行する方法はいくつかあります。

Dockerストレージは、Dockerホスト上でイメージとコンテナを格納および管理する方法を制御するドライバです。

Kitematicは、Mac、Linux、およびWindowsでDockerコンテナを管理するためのシンプルなアプリケーションであり、グラフィカルユーザーインターフェイス(GUI)からアプリケーションコンテナを制御できます。

オープンコンテナイニシアチブは、コンテナフォーマットとランタイムに関するオープンな業界標準を作成するという明確な目的のためのオープンガバナンス構造です。

Buildah は、Open Container Initiative (OCI) イメージを構築するためのコマンド ライン ツールです。これは、Docker、Podman、Kubernetesで使用できます。

Podman はデーモンレスのオープンソースの Linux ネイティブツールで、Open Containers Initiative (OCI) Containers and Container Images を使用してアプリケーションを簡単に検索、実行、構築、共有、デプロイできるように設計されています。Podman は、Docker コンテナーエンジンを使用したことのある人なら誰でも使い慣れたコマンドラインインターフェイス (CLI) を提供します。

Containerd は、イメージの転送とストレージからコンテナーの実行と監視、低レベルのストレージ、ネットワーク接続など、ホスト システムのコンテナー ライフサイクル全体を管理するデーモンです。Linux と Windows で利用できます。

Kubernetes

このページのトップへ戻る


Kubernetes Learning Resources

Kubernetes (K8s) は、コンテナー化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープン ソース システムです。

Kubernetes 認定資格の取得

AWS での Kubernetes の使用を開始するには

Kubernetes on Microsoft Azure

Intro to Azure Kubernetes Service

Azure Red Hat OpenShift

Google Cloud の使用を開始するには

Red Hat で Kubernetes を使い始めるには

IBM での Kubernetes の使用開始

Red Hat OpenShift on IBM Cloud

Red Hat OpenShift で OpenShift 仮想化を有効にする

Kubernetes の YAML の基本

Elastic Cloud on Kubernetes

Docker と Kubernetes

Kubernetes で Apache Spark を実行する

Kubernetes Across VMware vRealize Automation

VMware Tanzu Kubernetes Grid

VMware Tanzu が AWS と連携するすべての方法

ヴイエムウェア 丹津エデュケーション

クラウドネイティブのKubernetes環境でのAnsibleの使用

Ansible による Kubernetes (K8s) オブジェクトの管理

VagrantとAnsibleを使用したKubernetesクラスタのセットアップ

Kubernetes で MongoDB を実行する

Kubernetes Fluentd

新しい GitLab Kubernetes Agent について

Intro Local Process with Kubernetes for Visual Studio 2019

Kubernetes Contributors

VMwareのKubeAcademy(クベアカデミー)

プルミからのKubernetesチュートリアル

カタコダによるクベルネテス遊び場

UdacityのKubernetesコースによるスケーラブルなマイクロサービス

Kubernetes Tools, Frameworks, and Projects

オープンコンテナイニシアチブは、コンテナフォーマットとランタイムに関するオープンな業界標準を作成するという明確な目的のためのオープンガバナンス構造です。

Buildah は、Open Container Initiative (OCI) イメージを構築するためのコマンド ライン ツールです。これは、Docker、Podman、Kubernetesで使用できます。

Podman はデーモンレスのオープンソースの Linux ネイティブツールで、Open Containers Initiative (OCI) Containers and Container Images を使用してアプリケーションを簡単に検索、実行、構築、共有、デプロイできるように設計されています。Podman は、Docker コンテナーエンジンを使用したことのある人なら誰でも使い慣れたコマンドラインインターフェイス (CLI) を提供します。

Containerd は、イメージの転送とストレージからコンテナーの実行と監視、低レベルのストレージ、ネットワーク接続など、ホスト システムのコンテナー ライフサイクル全体を管理するデーモンです。Linux と Windows で利用できます。

Google Kubernetes Engine(GKE)は、コンテナー化されたアプリケーションを実行するための管理された運用環境です。

Azure Kubernetes Service (AKS) はサーバーレスの Kubernetes であり、統合された継続的インテグレーションと継続的デリバリー (CI/CD) エクスペリエンス、およびエンタープライズ レベルのセキュリティとガバナンスを備えています。開発チームと運用チームを 1 つのプラットフォームに統合し、自信を持ってアプリケーションを迅速に構築、提供、拡張できます。

Amazon EKS は、Kubernetes コントロールプレーンインスタンスを複数のアベイラビリティーゾーンで実行して、高可用性を確保するツールです。

AWS Controllers for Kubernetes (ACK) は、Kubernetes から AWS サービスを直接管理できる新しいツールです。ACK を使用すると、AWS サービスを利用するスケーラブルで可用性の高い Kubernetes アプリケーションを簡単に構築できます。

Container Engine for Kubernetes (OKE) は、Oracle が管理するコンテナー オーケストレーション サービスで、最新のクラウド ネイティブ アプリケーションを構築するための時間とコストを削減できます。他のほとんどのベンダーとは異なり、Oracle Cloud Infrastructureは、高性能で低コストのコンピューティングで実行される無料サービスとして、Kubernetes用コンテナエンジンを提供しています。

Anthos は、クラウド環境とオンプレミス環境に一貫した開発と運用エクスペリエンスを提供する最新のアプリケーション管理プラットフォームです。

Red Hat Openshift は、オンプレミス、ハイブリッド、およびマルチクラウドのデプロイの基盤を提供する、完全に管理された Kubernetes プラットフォームです。

OKDは、継続的なアプリケーション開発とマルチテナント展開に最適化されたKubernetesのコミュニティディストリビューションです。OKDは、Kubernetesの上に開発者と運用中心のツールを追加し、小規模および大規模チームの迅速なアプリケーション開発、容易な展開とスケーリング、および長期的なライフサイクルメンテナンスを可能にします。

Odo は、Kubernetes と OpenShift でアプリケーションを作成、構築、デプロイする開発者向けの、高速で反復的でわかりやすい CLI ツールです。

Kata Operatorは、OpenshiftおよびKubernetesクラスタ上でKata Runtime のライフサイクル管理(インストール/アップグレード/アンインストール)を実行するオペレータです。

Thanosは、無制限のストレージ容量を備えた高可用性メトリックシステムに構成できるコンポーネントのセットであり、既存のPrometheus展開の上にシームレスに追加できます。

OpenShift Hiveは、Kubernetes/OpenShiftの上にサービスとして動作するオペレーターです。Hive サービスは、OpenShift 4 クラスターの初期構成をプロビジョニングして実行するために使用できます。

Rookは、分散ストレージシステムを自己管理、自己スケーリング、自己修復ストレージサービスに変えるツールです。ストレージ管理者のタスク(導入、ブートストラップ、構成、プロビジョニング、スケーリング、アップグレード、移行、災害復旧、監視、リソース管理)を自動化します。

VMware Tanzuは、複数のチームとプライベート/パブリッククラウドにわたってKubernetesインフラストラクチャと最新のアプリケーションを一貫して運用および保護するための集中管理プラットフォームです。

Kubespray は、Kubernetes と Ansible を組み合わせて、AWS、GCE、Azure、OpenStack、vSpherePacket (ベアメタル)、Oracle Cloud Infrastructure (Experimental)、またはベアメタルにデプロイできる Kubernetes クラスターを簡単にインストールできるツールです。

KubeInit は、複数の Kubernetes ディストリビューションのデプロイと構成のための Ansible プレイブックとロールを提供します。

Rancherは、コンテナを採用するチームのための完全なソフトウェアスタックです。複数のKubernetesクラスターを管理するという運用上およびセキュリティ上の課題に対処しながら、コンテナ化されたワークロードを実行するための統合ツールをDevOpsチームに提供します。

K3s は、可用性が高く認定された Kubernetes ディストリビューションで、無人、リソースに制約のある遠隔地、または IoT アプライアンス内の運用ワークロード向けに設計されています。

Helm は Kubernetes パッケージマネージャーツールで、Kubernetes アプリケーションのインストールと管理を容易にします。

Knative は、最新のサーバーレスワークロードを構築、デプロイ、および管理するための Kubernetes ベースのプラットフォームです。Knative は、ネットワーク、自動スケール (ゼロまでも含む)、およびリビジョン追跡の運用オーバーヘッドの詳細を処理します。

KubeFlowは、Kubernetesでの機械学習(ML)ワークフローの展開をシンプル、ポータブル、スケーラブルにすることに特化したツールです。

Etcd は、分散システムまたはマシンのクラスターがアクセスする必要のあるデータを格納するための信頼性の高い方法を提供する分散キー値ストアです。Etcd はサービス検出のバックエンドとして使用され、Kubernetes のクラスター状態と構成を格納します。

OpenEBS は、コンテナー接続ストレージを使用してステートフルなアプリケーションを作成するための Kubernetes ベースのツールです。

コンテナー ストレージ インターフェイス (CSI) は、Kubernetes などのコンテナー オーケストレーション プラットフォームがプラグインを介して格納されたデータとシームレスに通信できるようにする API です。

MicroK8sは、Kubernetesの完全なエクスペリエンスを提供するツールです。完全にコンテナ化された展開では、非常に信頼性の高い操作のための圧縮された無線更新を備えています。Linux、Windows、および MacOS でサポートされています。

Charmed Kubernetesは、Canonicalが開発したマルチクラウド環境向けに最適化された、よく統合されたターンキー、準拠したKubernetesプラットフォームです。

Grafana Kubernetesアプリは、Kubernetesクラスターのパフォーマンスを監視できる有料料金です。これには、4つのダッシュボード、クラスター、ノード、ポッド/コンテナ、デプロイが含まれています。これにより、必要なプロメテウスエクスポーターの自動デプロイと、クラスター内のプロメテウスデプロイで使用するデフォルトのスクレープ設定が可能になります。

KubeEdgeは、ネイティブのコンテナ化されたアプリケーションオーケストレーション機能をホストに拡張するためのオープンソースシステムであり、Edge.It はkubernetes上に構築され、クラウドとエッジ間のネットワーク、アプリの展開、メタデータ同期のための基本的なインフラストラクチャサポートを提供します。

Lens は、日常的に Kubernetes クラスターに対処する必要があるユーザーにとって最も強力な IDE です。MacOS、Windows、Linuxオペレーティングシステムをサポートしています。

Flux CDは、Kubernetesクラスターの状態がGitで指定した構成と一致することを自動的に保証するツールです。クラスター内のオペレーターを使用して Kubernetes 内のデプロイをトリガーするため、個別の継続的デリバリー ツールは必要ありません。

Platform9 Managed Kubernetes (PMK) は、データセンター、パブリッククラウド、エッジなど、あらゆる環境で 99.9% の SLA で 2 日目の運用を完全に自動化した Kubernetes as a サービスです。

アンシブル

このページのトップへ戻る


Mac Development Ansible Playbook by Jeff Geerling

アンシブル学習リソース

Ansibleは、クラウドプロビジョニング、構成管理、アプリケーションのデプロイ、サービス内オーケストレーション、その他多くのITニーズを自動化するシンプルなIT自動化エンジンです。非常に単純な言語 (YAML、Ansible Playbooks の形式) を使用しており、平易な英語に近づく方法で自動化ジョブを記述できます。Anisble は Linux (Red Hat EnterPrise Linux(RHEL) と Ubuntu) と Microsoft Windows で動作します。

Red Hat Training for Ansible

Udemyのトップアンシブルコースオンライン

Ansibleの紹介:コースラの基礎

多元性に関するアンシブルな基礎を学ぶ

Red Hat Ansible Automation Platform 2.1 の紹介

アンシブルドキュメンテーション

アンシブルギャラクシーユーザーガイド

アンシブルユースケース

アンシブルインテグレーション

アンシブルコレクションの概要

プレイブックの操作

Ansible for DevOps Example by Jeff Geerling

はじめに:あなたの最初のプレイブックを書く - Ansible

Ansible でのモジュールの操作

Ansibleベストプラクティス:役割とモジュール

Ansible のコマンド行ツールの操作

Ansible Vault によるコンテンツの暗号化

Ansible でのプレイブックでのボールトの使用

Ansible と Azure の使用

Azure VM での Ansible の構成

Ansibleの使い方:DigitalOceanのAnsibleチートシートガイド

Ansible の Linode | のイントロ空間ラボ

Ansible DevOps Tools Integration

Ansible Automation Hub は、Ansible Automation Platform サブスクリプションの一部として含まれている、サポートされているコレクションを検出してダウンロードするための公式の場所です。これらのコンテンツ コレクションには、モジュール、プラグイン、ロール、およびプレイブックがダウンロード可能なパッケージに含まれています。

コレクションは、プレイブック、ロール、モジュール、プラグインを含むことができるAnsibleコンテンツの配布形式です。モジュールがコアのAnsibleリポジトリからコレクションに移動すると、モジュールのドキュメントはコレクションページに移動します。

Ansible Lintは、Ansibleユーザーを対象としたプレイブック、ロール、コレクションをリントするためのコマンドラインツールです。その主な目標は、実証済みのプラクティス、パターン、および動作を促進しながら、バグにつながりやすい、またはコードの保守を困難にする可能性のある一般的な落とし穴を回避することです。

Ansible cmdb は、Ansible のファクト収集の出力を受け取り、それをシステム構成情報を含む静的な HTML 概要ページに変換するツールです。

Ansible Inventory Grapherは、インベントリ継承階層と、インベントリで変数が定義されているレベルを視覚的に表示します。

Ansible Playbook Grapherは、Ansibleプレイブックのタスクと役割を表すグラフを作成するためのコマンドラインツールです。

Ansible Shell は Ansible の対話型シェルで、すべてのモジュールにタブ補完機能が組み込まれています。

Ansible Silo は、Docker による自己完結型の Ansible 環境です。

Ansigenomeは、Ansibleの役割を管理するのに役立つように設計されたコマンドラインツールです。

ARAは、Ansibleプレイブックが実行されるレコードであり、コールバックプラグインとしてAnsibleと統合することにより、記録されたデータをユーザーやシステムにとって利用可能で直感的にします。

Capistrano はリモートサーバー自動化ツールです。任意のタスクのスクリプト作成と実行をサポートし、一連の正常な既定の展開ワークフローが含まれています。

Fabric は高レベルの Python (2.7, 3.4+) ライブラリで、SSH 経由でシェルコマンドをリモートで実行し、有用な Python オブジェクトを生成するように設計されています。これは、Invoke(サブプロセスコマンド実行とコマンドライン機能)とParamiko(SSHプロトコル実装)の上に構築され、APIを拡張して互いに補完し、追加機能を提供します。

ansible-role-wireguard は WireGuard VPN をインストールするための Ansible ロールです。Ubuntu、Debian、Archlinx、Fedora、CentOS Stream をサポートしています。

wireguard_cloud_gatewayは、クラウドネットワーク用のゲートウェイVPNサーバーとしてWireguardを設定するためのAnsibleの役割です。

Red Hat OpenShift は、コンテナスタックのあらゆるレベルおよびアプリケーションライフサイクル全体を通じて、セキュリティに重点を置いています。これには、Kubernetesの主要な貢献者およびオープンソースソフトウェア企業の1つによる長期的なエンタープライズサポートが含まれています。

OpenShift Hiveは、Kubernetes/OpenShiftの上にサービスとして動作するオペレーターです。Hive サービスは、OpenShift 4 クラスターの初期構成をプロビジョニングして実行するために使用できます。

データベース

このページのトップへ戻る



SQL/NoSQL ラーニングリソース

SQLは、リレーショナルデータベース内のデータを格納、操作、および取得するための標準言語です。

NoSQLは、データベースが行とテーブルを持つリレーショナル(SQLベースの)データベースとは異なる方法で、急速に変化する大量の非構造化データを処理できることを強調するために、「非リレーショナル」または「非SQL」と同義語で呼ばれるデータベースです。

Transact-SQL(T-SQL) は、T-SQL コマンドを送信して SQL データベースと通信するすべてのツールとアプリケーションを備えた SQL のマイクロソフト拡張機能です。

トランザクション SQL の概要

W3Schools による SQL チュートリアル

CourseraからSQLスキルをオンラインで学ぶ

UdemyのSQLコースオンライン

LinkedIn Learning の SQL オンライン トレーニング コース

Codecademy から SQL を無料で学ぶ

GitLab の SQL スタイルガイド

OracleDB SQLスタイル・ガイドの基本

Tableau CRM: BI ソフトウェアとツール

AWS 上のデータベース

AWS EC2 での SQL Server クラスタリングのベストプラクティスと推奨事項。

Google Kubernetes Engine から Cloud SQL インスタンスへの接続。

Educational Microsoft Azure SQL Resources

MySQL 認定

SQLとNoSQLデータベース:違いは何ですか?

NoSQLとは何ですか?

SQL/NoSQL Tools and Databases

Netdataは忠実度の高いインフラストラクチャの監視とトラブルシューティングであり、リアルタイム監視エージェントは、構成ゼロでシステム、ハードウェア、コンテナ、およびアプリケーションから何千ものメトリックを収集します。すべての物理/仮想サーバー、コンテナー、クラウド展開、エッジ/IoTデバイスで永続的に実行され、インシデントの途中で準備なしでシステムにインストールしても完全に安全です。

Azure Data Studio は、Windows から SQL Server、Azure SQL DB、および SQL DW を Windows、macOS、および Linux から操作できるようにするオープン ソースのデータ管理ツールです。

RStudio は、R と Python の統合開発環境であり、コンソール、直接コード実行をサポートする構文強調表示エディター、およびプロット、履歴、デバッグ、ワークスペース管理のためのツールを備えています。

MySQLは、世界で最も人気のあるオープンソースデータベースを使用してクラウドネイティブアプリケーションをデプロイするための完全に管理されたデータベースサービスです。

PostgreSQLは、30年以上の積極的な開発実績を持つ強力なオープンソースのオブジェクトリレーショナルデータベースシステムであり、信頼性、機能の堅牢性、およびパフォーマンスで高い評価を得ています。

Amazon DynamoDB は、あらゆるスケールで 1 桁ミリ秒のパフォーマンスを提供するキー値およびドキュメントデータベースです。これは、インターネット規模のアプリケーション用のセキュリティ、バックアップと復元、およびメモリ内キャッシュを内蔵した、完全に管理されたマルチリージョン、マルチマスター、耐久性のあるデータベースです。

Apache Cassandra™は、パフォーマンスを損なうことなくスケーラビリティと高可用性のために何千もの企業から信頼されているオープンソースのNoSQL分散データベースです。Cassandraは、コモディティハードウェアまたはクラウドインフラストラクチャで線形スケーラビリティと実証済みのフォールトトレランスを提供し、ミッションクリティカルなデータに最適なプラットフォームです。

Apache HBase™ は、オープンソースの NoSQL 分散ビッグデータストアです。これにより、ペタバイト規模のデータへのランダムで厳密に一貫性のあるリアルタイムアクセスが可能になります。HBase は、大規模でまばらなデータセットを処理するのに非常に効果的です。HBase は、Hadoop 用の Apache MapReduce フレームワークへの直接の入出力として機能し、Apache Phoenix と連携して HBase テーブルに対する SQL ライクなクエリを有効にします。

Hadoop 分散ファイル・システム (HDFS) は、コモディティー・ハードウェア上で稼働する大規模なデータ・セットを処理する分散ファイル・システムです。これは、単一のApache Hadoopクラスタを数百(さらには数千)のノードにスケーリングするために使用されます。HDFSはApache Hadoopの主要コンポーネントの1つであり、その他はMapReduceYARNです

Apache Mesos は、分散アプリケーションまたはフレームワーク間で効率的なリソース分離と共有を提供するクラスター・マネージャーです。Hadoop、Jenkins、Spark、Aurora、およびその他のフレームワークを動的に共有されたノードプール上で実行できます。

Apache Spark はビッグデータ処理用の統合分析エンジンで、ストリーミング、SQL、機械学習、グラフ処理用のモジュールが組み込まれています。

ElasticSearchは、Luceneライブラリに基づく検索エンジンです。これは、HTTP WebインターフェイスとスキーマフリーのJSONドキュメントを備えた分散マルチテナント対応の全文検索エンジンを提供します。ElasticsearchはJavaで開発されています。

Logstash is a tool for managing events and logs. When used generically, the term encompasses a larger system of log collection, processing, storage and searching activities.

Kibana is an open source data visualization plugin for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster. Users can create bar, line and scatter plots, or pie charts and maps on top of large volumes of data.

Trino is a Distributed SQL query engine for big data. It is able to tremendously speed up ETL processes, allow them all to use standard SQL statement, and work with numerous data sources and targets all in the same system.

Extract, transform, and load (ETL) is a data pipeline used to collect data from various sources, transform the data according to business rules, and load it into a destination data store.

Redis(REmote DIctionary Server) is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. It provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.

FoundationDB is an open source distributed database designed to handle large volumes of structured data across clusters of commodity servers. It organizes data as an ordered key-value store and employs ACID transactions for all operations. It is especially well-suited for read/write workloads but also has excellent performance for write-intensive workloads. FoundationDB was acquired by Apple in 2015.

IBM DB2 is a collection of hybrid data management products offering a complete suite of AI-empowered capabilities designed to help you manage both structured and unstructured data on premises as well as in private and public cloud environments. Db2 is built on an intelligent common SQL engine designed for scalability and flexibility.

MongoDB is a document database meaning it stores data in JSON-like documents.

OracleDB is a powerful fully managed database helps developers manage business-critical data with the highest availability, reliability, and security.

MariaDB is an enterprise open source database solution for modern, mission-critical applications.

SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.SQLite is the most used database engine in the world. SQLite is built into all mobile phones and most computers and comes bundled inside countless other applications that people use every day.

SQLite Database Browser is an open source SQL tool that allows users to create, design and edits SQLite database files. It lets users show a log of all the SQL commands that have been issued by them and by the application itself.

InfluxDB is an open source time series platform. This includes APIs for storing and querying data, processing it in the background for ETL or monitoring and alerting purposes, user dashboards, Internet of Things sensor data, and visualizing and exploring the data and more. It also has support for processing data from Graphite.

Atlas is an in-memory dimensional time series database.

CouchbaseDB is an open source distributed multi-model NoSQL document-oriented database. It creates a key-value store with managed cache for sub-millisecond data operations, with purpose-built indexers for efficient queries and a powerful query engine for executing SQL queries.

dbWatch is a complete database monitoring/management solution for SQL Server, Oracle, PostgreSQL, Sybase, MySQL and Azure. Designed for proactive management and automation of routine maintenance in large scale on-premise, hybrid/cloud database environments.

Cosmos DB Profiler is a real-time visual debugger allowing a development team to gain valuable insight and perspective into their usage of Cosmos DB database. It identifies over a dozen suspicious behaviors from your application’s interaction with Cosmos DB.

Adminer is an SQL management client tool for managing databases, tables, relations, indexes, users. Adminer has support for all the popular database management systems such as MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch and MongoDB.

DBeaver is an open source database tool for developers and database administrators. It offers supports for JDBC compliant databases such as MySQL, Oracle, IBM DB2, SQL Server, Firebird, SQLite, Sybase, Teradata, Firebird, Apache Hive, Phoenix, and Presto.

DbVisualizer is a SQL management tool that allows users to manage a wide range of databases such as Oracle, Sybase, SQL Server, MySQL, H3, and SQLite.

AppDynamics Database is a management product for Microsoft SQL Server. With AppDynamics you can monitor and trend key performance metrics such as resource consumption, database objects, schema statistics and more, allowing you to proactively tune and fix issues in a High-Volume Production Environment.

Toad is a SQL Server DBMS toolset developed by Quest. It increases productivity by using extensive automation, intuitive workflows, and built-in expertise. This SQL management tool resolve issues, manage change and promote the highest levels of code quality for both relational and non-relational databases.

Lepide SQL Server is an open source storage manager utility to analyse the performance of SQL Servers. It provides a complete overview of all configuration and permission changes being made to your SQL Server environment through an easy-to-use, graphical user interface.

Sequel Pro is a fast MacOS database management tool for working with MySQL. This SQL management tool helpful for interacting with your database by easily to adding new databases, new tables, and new rows.

Telco 5G

Back to the Top

VMware Cloud First Approach. Source: VMware.

VMware Telco Cloud Automation Components. Source: VMware.

Telco Learning Resources

HPE(Hewlett Packard Enterprise) Telco Blueprints overview

Network Functions Virtualization Infrastructure (NFVI) by Cisco

Introduction to vCloud NFV Telco Edge from VMware

VMware Telco Cloud Automation(TCA) Architecture Overview

5G Telco Cloud from VMware

Maturing OpenStack Together To Solve Telco Needs from Red Hat

Red Hat telco ecosystem program

OpenStack for Telcos by Canonical

Open source NFV platform for 5G from Ubuntu

Understanding 5G Technology from Verizon

Verizon and Unity partner to enable 5G & MEC gaming and enterprise applications

Understanding 5G Technology from Intel

Understanding 5G Technology from Qualcomm

Telco Acceleration with Xilinx

VIMs on OSM Public Wiki

Amazon EC2 Overview and Networking Introduction for Telecom Companies

Citrix Certified Associate – Networking(CCA-N)

Citrix Certified Professional – Virtualization(CCP-V)

CCNP Routing and Switching

Certified Information Security Manager(CISM)

Wireshark Certified Network Analyst (WCNA)

Juniper Networks Certification Program Enterprise (JNCP)

Cloud Native Computing Foundation Training and Certification Program

Tools

Open Stack is an open source cloud platform, deployed as infrastructure-as-a-service (IaaS) to orchestrate data center operations on bare metal, private cloud hardware, public cloud resources, or both (hybrid/multi-cloud architecture). OpenStack includes advance use of virtualization & SDN for network traffic optimization to handle the core cloud-computing services of compute, networking, storage, identity, and image services.

StarlingX is a complete cloud infrastructure software stack for the edge used by the most demanding applications in industrial IOT, telecom, video delivery and other ultra-low latency use cases.

Airship is a collection of open source tools for automating cloud provisioning and management. Airship provides a declarative framework for defining and managing the life cycle of open infrastructure tools and the underlying hardware.

Network functions virtualization (NFV) is the replacement of network appliance hardware with virtual machines. The virtual machines use a hypervisor to run networking software and processes such as routing and load balancing. NFV allows for the separation of communication services from dedicated hardware, such as routers and firewalls. This separation means network operations can provide new services dynamically and without installing new hardware. Deploying network components with network functions virtualization only takes hours compared to months like with traditional networking solutions.

Software Defined Networking (SDN) is an approach to networking that uses software-based controllers or application programming interfaces (APIs) to communicate with underlying hardware infrastructure and direct traffic on a network. This model differs from that of traditional networks, which use dedicated hardware devices (routers and switches) to control network traffic.

Virtualized Infrastructure Manager (VIM) is a service delivery and reduce costs with high performance lifecycle management Manage the full lifecycle of the software and hardware comprising your NFV infrastructure (NFVI), and maintaining a live inventory and allocation plan of both physical and virtual resources.

Management and Orchestration(MANO) is an ETSI-hosted initiative to develop an Open Source NFV Management and Orchestration (MANO) software stack aligned with ETSI NFV. Two of the key components of the ETSI NFV architectural framework are the NFV Orchestrator and VNF Manager, known as NFV MANO.

Magma is an open source software platform that gives network operators an open, flexible and extendable mobile core network solution. Their mission is to connect the world to a faster network by enabling service providers to build cost-effective and extensible carrier-grade networks. Magma is 3GPP generation (2G, 3G, 4G or upcoming 5G networks) and access network agnostic (cellular or WiFi). It can flexibly support a radio access network with minimal development and deployment effort.

OpenRAN is an intelligent Radio Access Network(RAN) integrated on general purpose platforms with open interface between software defined functions. Open RANecosystem enables enormous flexibility and interoperability with a complete openess to multi-vendor deployments.

Open vSwitch(OVS)is an open source production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag).

Edge is a distributed computing framework that brings enterprise applications closer to data sources such as IoT devices or local edge servers. This proximity to data at its source can deliver strong business benefits, including faster insights, improved response times and better bandwidth availability.

Multi-access edge computing (MEC) is an Industry Specification Group (ISG) within ETSI to create a standardized, open environment which will allow the efficient and seamless integration of applications from vendors, service providers, and third-parties across multi-vendor Multi-access Edge Computing platforms.

Virtualized network functions(VNFs) is a software application used in a Network Functions Virtualization (NFV) implementation that has well defined interfaces, and provides one or more component networking functions in a defined way. For example, a security VNF provides Network Address Translation (NAT) and firewall component functions.

Cloud-Native Network Functions(CNF) is a network function designed and implemented to run inside containers. CNFs inherit all the cloud native architectural and operational principles including Kubernetes(K8s) lifecycle management, agility, resilience, and observability.

Physical Network Function(PNF) is a physical network node which has not undergone virtualization. Both PNFs and VNFs (Virtualized Network Functions) can be used to form an overall Network Service.

Network functions virtualization infrastructure(NFVI) is the foundation of the overall NFV architecture. It provides the physical compute, storage, and networking hardware that hosts the VNFs. Each NFVI block can be thought of as an NFVI node and many nodes can be deployed and controlled geographically.

Open Source Security

Back to the Top

Open Source Security Foundation (OpenSSF) is a cross-industry collaboration that brings together leaders to improve the security of open source software by building a broader community, targeted initiatives, and best practices. The OpenSSF brings together open source security initiatives under one foundation to accelerate work through cross-industry support. Along with the Core Infrastructure Initiative and the Open Source Security Coalition, and will include new working groups that address vulnerability disclosures, security tooling and more.

Security Standards, Frameworks and Benchmarks

STIGs Benchmarks - Security Technical Implementation Guides

CIS Benchmarks - CIS Center for Internet Security

NIST - Current FIPS

ISO Standards Catalogue

Common Criteria for Information Technology Security Evaluation (CC) is an international standard (ISO / IEC 15408) for computer security. It allows an objective evaluation to validate that a particular product satisfies a defined set of security requirements.

ISO 22301 is the international standard that provides a best-practice framework for implementing an optimised BCMS (business continuity management system).

ISO27001 is the international standard that describes the requirements for an ISMS (information security management system). The framework is designed to help organizations manage their security practices in one place, consistently and cost-effectively.

ISO 27701 specifies the requirements for a PIMS (privacy information management system) based on the requirements of ISO 27001. It is extended by a set of privacy-specific requirements, control objectives and controls. Companies that have implemented ISO 27001 will be able to use ISO 27701 to extend their security efforts to cover privacy management.

EU GDPR (General Data Protection Regulation) is a privacy and data protection law that supersedes existing national data protection laws across the EU, bringing uniformity by introducing just one main data protection law for companies/organizations to comply with.

CCPA (California Consumer Privacy Act) is a data privacy law that took effect on January 1, 2020 in the State of California. It applies to businesses that collect California residents’ personal information, and its privacy requirements are similar to those of the EU’s GDPR (General Data Protection Regulation).

Payment Card Industry (PCI) Data Security Standards (DSS) is a global information security standard designed to prevent fraud through increased control of credit card data.

SOC 2 is an auditing procedure that ensures your service providers securely manage your data to protect the interests of your comapny/organization and the privacy of their clients.

NIST CSF is a voluntary framework primarily intended for critical infrastructure organizations to manage and mitigate cybersecurity risk based on existing best practice.

Security Tools

SELinux is a security enhancement to Linux which allows users and administrators more control over access control. Access can be constrained on such variables as which users and applications can access which resources. These resources may take the form of files. Standard Linux access controls, such as file modes (-rwxr-xr-x) are modifiable by the user and the applications which the user runs. Conversely, SELinux access controls are determined by a policy loaded on the system which may not be changed by careless users or misbehaving applications.

AppArmor is an effective and easy-to-use Linux application security system. AppArmor proactively protects the operating system and applications from external or internal threats, even zero-day attacks, by enforcing good behavior and preventing both known and unknown application flaws from being exploited. AppArmor supplements the traditional Unix discretionary access control (DAC) model by providing mandatory access control (MAC). It has been included in the mainline Linux kernel since version 2.6.36 and its development has been supported by Canonical since 2009.

Control Groups(Cgroups) is a Linux kernel feature that allows you to allocate resources such as CPU time, system memory, network bandwidth, or any combination of these resources for user-defined groups of tasks (processes) running on a system.

EarlyOOM is a daemon for Linux that enables users to more quickly recover and regain control over their system in low-memory situations with heavy swap usage.

Libgcrypt is a general purpose cryptographic library originally based on code from GnuPG.

Kali Linux is an open source project that is maintained and funded by Offensive Security, a provider of world-class information security training and penetration testing services.

Pi-hole is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software, intended for use on a private network. It is designed for use on embedded devices with network capability, such as the Raspberry Pi, but it can be used on other machines running Linux and cloud implementations.

Aircrack-ng is a network software suite consisting of a detector, packet sniffer, WEP and WPA/WPA2-PSK cracker and analysis tool for 802.11 wireless LANs. It works with any wireless network interface controller whose driver supports raw monitoring mode and can sniff 802.11a, 802.11b and 802.11g traffic.

Burp Suite is a leading range of cybersecurity tools.

KernelCI is a community-based open source distributed test automation system focused on upstream kernel development. The primary goal of KernelCI is to use an open testing philosophy to ensure the quality, stability and long-term maintenance of the Linux kernel.

Continuous Kernel Integration project helps find bugs in kernel patches before they are commited to an upstram kernel tree. We are team of kernel developers, kernel testers, and automation engineers.

eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules. By making the Linux kernel programmable, infrastructure software can leverage existing layers, making them more intelligent and feature-rich without continuing to add additional layers of complexity to the system.

Cilium uses eBPF to accelerate getting data in and out of L7 proxies such as Envoy, enabling efficient visibility into API protocols like HTTP, gRPC, and Kafka.

Hubble is a Network, Service & Security Observability for Kubernetes using eBPF.

Istio is an open platform to connect, manage, and secure microservices. Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes and Mesos.

Certgen is a convenience tool to generate and store certificates for Hubble Relay mTLS.

Scapy is a python-based interactive packet manipulation program & library.

syzkaller is an unsupervised, coverage-guided kernel fuzzer.

SchedViz is a tool for gathering and visualizing kernel scheduling traces on Linux machines.

oss-fuzz aims to make common open source software more secure and stable by combining modern fuzzing techniques with scalable, distributed execution.

OSSEC is a free, open-source host-based intrusion detection system. It performs log analysis, integrity checking, Windows registry monitoring, rootkit detection, time-based alerting, and active response.

Metasploit Project is a computer security project that provides information about security vulnerabilities and aids in penetration testing and IDS signature development.

Wfuzz was created to facilitate the task in web applications assessments and it is based on a simple concept: it replaces any reference to the FUZZ keyword by the value of a given payload.

Nmap is a security scanner used to discover hosts and services on a computer network, thus building a "map" of the network.

Patchwork is a web-based patch tracking system designed to facilitate the contribution and management of contributions to an open-source project.

pfSense is a free and open source firewall and router that also features unified threat management, load balancing, multi WAN, and more.

Snowpatch is a continuous integration tool for projects using a patch-based, mailing-list-centric git workflow. This workflow is used by a number of well-known open source projects such as the Linux kernel.

Snort is an open-source, free and lightweight network intrusion detection system (NIDS) software for Linux and Windows to detect emerging threats.

Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education.

OpenSCAP is U.S. standard maintained by National Institute of Standards and Technology (NIST). It provides multiple tools to assist administrators and auditors with assessment, measurement, and enforcement of security baselines. OpenSCAP maintains great flexibility and interoperability by reducing the costs of performing security audits. Whether you want to evaluate DISA STIGs, NIST‘s USGCB, or Red Hat’s Security Response Team’s content, all are supported by OpenSCAP.

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and harder to misuse.

OWASP is an online community, produces freely-available articles, methodologies, documentation, tools, and technologies in the field of web application security.

Open Vulnerability and Assessment Language is a community effort to standardize how to assess and report upon the machine state of computer systems. OVAL includes a language to encode system details, and community repositories of content. Tools and services that use OVAL provide enterprises with accurate, consistent, and actionable information to improve their security.

ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats.

Open Source Security Learning Resources

Microsoft Open Source Software Security

Cloudflare Open Source Security

The Seven Properties of Highly Secure Devices

How Layer 7 of the Internet Works

The 7 Kinds of Security

The Libgcrypt Reference Manual

The Open Web Application Security Project(OWASP) Foundation Top 10

Best Practices for Using Open Source Code from The Linux Foundation

AWS Certified Security - Specialty Certification

Microsoft Certified: Azure Security Engineer Associate

Google Cloud Certified Professional Cloud Security Engineer

Cisco Security Certifications

The Red Hat Certified Specialist in Security: Linux

Linux Professional Institute LPIC-3 Enterprise Security Certification

Cybersecurity Training and Courses from IBM Skills

Cybersecurity Courses and Certifications by Offensive Security

RSA Certification Program

Check Point Certified Security Expert(CCSE) Certification

Check Point Certified Security Administrator(CCSA) Certification

Check Point Certified Security Master (CCSM) Certification

Certified Cloud Security Professional(CCSP) Certification

Certified Information Systems Security Professional (CISSP) Certification

CCNP Routing and Switching

Certified Information Security Manager(CISM)

Wireshark Certified Network Analyst (WCNA)

Juniper Networks Certification Program Enterprise (JNCP)

Security Training Certifications and Courses from Udemy

Security Training Certifications and Courses from Coursera

Security Certifications Training from Pluarlsight

Differential Privacy

Back to the Top


Above is a simple diagram of how Differential Privacy-Preserving Data Sharing and Data Mining protects a User's Data

Differential Privacy Learning Resources

Differential Privacy is a system that simultaneously enables researchers and analysts to extract useful insights from datasets containing personal information and offers stronger privacy protections. This is achieved by introducing "statistical noise".

Statistical Noise is a process that small aletrations to masked datasets. The statistical noise hides identifiable characteristics of individuals, ensuring that the privacy of personal information is protected, but it's small enough to not materially impact the accuracy of the answers extracted by analysts and researchers.

Laplacian Noise is a mechanism that adds Laplacian-distributed noise to a function.

Differential Privacy Blog Series by the National Institute of Standards and Technology(NIST)

Apple's Differential Privacy Overview

Learning with Privacy at Scale with Apple Machine Learning

Microsoft Research Differential Privacy Overview

Responsible Machine Learning with Microsoft Azure

Responsible AI Resources with Microsoft AI

Preserve data privacy by using differential privacy and the SmartNoise package

Open Differential Privacy(OpenDP) Initiative by Microsoft and Harvard

Google's Differential Privacy Library

Computing Private Statistics with Privacy on Beam from Google Codelabs

Introducing TensorFlow Privacy: Learning with Differential Privacy for Training Data

TensorFlow Federated: Machine Learning on Decentralized Data

Federated Analytics: Collaborative Data Science without Data Collection

Differentially-Private Stochastic Gradient Descent(DP-SGD)

Learning Differential Privacy from Harvard University Privacy Tools Project

Harvard University Privacy Tools Project Courses & Educational Materials

The Weaknesses of Differential Privacy course on Coursera

The Differential Privacy of Bayesian Inference

Simultaneous private learning of multiple concepts

The Complexity of Computing the Optimal Composition of Differential Privacy

Order revealing encryption and the hardness of private learning

SAP HANA data anonymization using SAP Software Solutions

SAP HANA Security using their In-Memory Database

DEFCON Differential Privacy Training Launch

Secure and Private AI course on Udacity

Differential Privacy - Security and Privacy for Big Data - Part 1 course on Coursera

Differential Privacy - Security and Privacy for Big Data - Part 2 course on Coursera

Certified Ethical Emerging Technologist Professional Certificate course on Coursera

Differential Privacy Tools

PySyft is a Python library for secure and private Deep Learning. PySyft decouples private data from model training, using Federated Learning, Differential Privacy, and Encrypted Computation (like Multi-Party Computation (MPC) and Homomorphic Encryption (HE) within the main Deep Learning frameworks like PyTorch and TensorFlow.

TensorFlow Privacy is a Python library that includes implementations of TensorFlow optimizers for training machine learning models with differential privacy. The library comes with tutorials and analysis tools for computing the privacy guarantees provided.

TensorFlow Federated (TFF) is an open-source framework for machine learning and other computations on decentralized data. TFF has been developed to facilitate open research and experimentation with Federated Learning (FL), an approach to machine learning where a shared global model is trained across many participating clients that keep their training data locally.

Privacy on Beam is an end-to-end differential privacy solution built on Apache Beam. It is intended to be usable by all developers, regardless of their differential privacy expertise.

PyDP is a Python wrapper for Google's Differential Privacy project.

PennyLane is a cross-platform Python library for differentiable programming of quantum computers. By training a quantum computer the same way as a neural network.

BoTorch is a library for Bayesian Optimization built on PyTorch.

PyTorch Geometric (PyG) is a geometric deep learning extension library for PyTorch.

Skorch is a scikit-learn compatible neural network library that wraps PyTorch.

Diffprivlib is the IBM Differential Privacy Library for experimenting with, investigating and developing applications in, differential privacy.

Opacus is a library that enables training PyTorch models with differential privacy. It supports training with minimal code changes required on the client, has little impact on training performance and allows the client to online track the privacy budget expended at any given moment.

Smart Noise is a toolkit that uses state-of-the-art differential privacy (DP) techniques to inject noise into data, to prevent disclosure of sensitive information and manage exposure risk.

Machine Learning

Back to the Top

ML frameworks & applications

TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.

Tensorman is a utility for easy management of Tensorflow containers by developed by System76.Tensorman allows Tensorflow to operate in an isolated environment that is contained from the rest of the system. This virtual environment can operate independent of the base system, allowing you to use any version of Tensorflow on any version of a Linux distribution that supports the Docker runtime.

Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.It was developed with a focus on enabling fast experimentation. It is capable of running on top of TensorFlow, Microsoft Cognitive Toolkit, R, Theano, or PlaidML.

PyTorch is a library for deep learning on irregular input data such as graphs, point clouds, and manifolds. Primarily developed by Facebook's AI Research lab.

Amazon SageMaker is a fully managed service that provides every developer and data scientist with the ability to build, train, and deploy machine learning (ML) models quickly. SageMaker removes the heavy lifting from each step of the machine learning process to make it easier to develop high quality models.

Azure Databricks is a fast and collaborative Apache Spark-based big data analytics service designed for data science and data engineering. Azure Databricks, sets up your Apache Spark environment in minutes, autoscale, and collaborate on shared projects in an interactive workspace. Azure Databricks supports Python, Scala, R, Java, and SQL, as well as data science frameworks and libraries including TensorFlow, PyTorch, and scikit-learn.

Microsoft Cognitive Toolkit (CNTK) is an open-source toolkit for commercial-grade distributed deep learning. It describes neural networks as a series of computational steps via a directed graph. CNTK allows the user to easily realize and combine popular model types such as feed-forward DNNs, convolutional neural networks (CNNs) and recurrent neural networks (RNNs/LSTMs). CNTK implements stochastic gradient descent (SGD, error backpropagation) learning with automatic differentiation and parallelization across multiple GPUs and servers.

Apache Airflow is an open-source workflow management platform created by the community to programmatically author, schedule and monitor workflows. Install. Principles. Scalable. Airflow has a modular architecture and uses a message queue to orchestrate an arbitrary number of workers. Airflow is ready to scale to infinity.

Open Neural Network Exchange(ONNX) is an open ecosystem that empowers AI developers to choose the right tools as their project evolves. ONNX provides an open source format for AI models, both deep learning and traditional ML. It defines an extensible computation graph model, as well as definitions of built-in operators and standard data types.

Apache MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to mix symbolic and imperative programming to maximize efficiency and productivity. At its core, MXNet contains a dynamic dependency scheduler that automatically parallelizes both symbolic and imperative operations on the fly. A graph optimization layer on top of that makes symbolic execution fast and memory efficient. MXNet is portable and lightweight, scaling effectively to multiple GPUs and multiple machines. Support for Python, R, Julia, Scala, Go, Javascript and more.

AutoGluon is toolkit for Deep learning that automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy deep learning models on tabular, image, and text data.

Anaconda is a very popular Data Science platform for machine learning and deep learning that enables users to develop models, train them, and deploy them.

PlaidML is an advanced and portable tensor compiler for enabling deep learning on laptops, embedded devices, or other devices where the available computing hardware is not well supported or the available software stack contains unpalatable license restrictions.

OpenCV is a highly optimized library with focus on real-time computer vision applications. The C++, Python, and Java interfaces support Linux, MacOS, Windows, iOS, and Android.

Scikit-Learn is a Python module for machine learning built on top of SciPy, NumPy, and matplotlib, making it easier to apply robust and simple implementations of many popular machine learning algorithms.

Weka is an open source machine learning software that can be accessed through a graphical user interface, standard terminal applications, or a Java API. It is widely used for teaching, research, and industrial applications, contains a plethora of built-in tools for standard machine learning tasks, and additionally gives transparent access to well-known toolboxes such as scikit-learn, R, and Deeplearning4j.

Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by Berkeley AI Research (BAIR)/The Berkeley Vision and Learning Center (BVLC) and community contributors.

Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently including tight integration with NumPy.

nGraph is an open source C++ library, compiler and runtime for Deep Learning. The nGraph Compiler aims to accelerate developing AI workloads using any deep learning framework and deploying to a variety of hardware targets.It provides the freedom, performance, and ease-of-use to AI developers.

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN accelerates widely used deep learning frameworks, including Caffe2, Chainer, Keras, MATLAB, MxNet, PyTorch, and TensorFlow.

Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Jupyter is used widely in industries that do data cleaning and transformation, numerical simulation, statistical modeling, data visualization, data science, and machine learning.

Apache Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that supports general computation graphs for data analysis. It also supports a rich set of higher-level tools including Spark SQL for SQL and DataFrames, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for stream processing.

Apache Spark Connector for SQL Server and Azure SQL is a high-performance connector that enables you to use transactional data in big data analytics and persists results for ad-hoc queries or reporting. The connector allows you to use any SQL database, on-premises or in the cloud, as an input data source or output data sink for Spark jobs.

Apache PredictionIO is an open source machine learning framework for developers, data scientists, and end users. It supports event collection, deployment of algorithms, evaluation, querying predictive results via REST APIs. It is based on scalable open source services like Hadoop, HBase (and other DBs), Elasticsearch, Spark and implements what is called a Lambda Architecture.

Cluster Manager for Apache Kafka(CMAK) is a tool for managing Apache Kafka clusters.

BigDL is a distributed deep learning library for Apache Spark. With BigDL, users can write their deep learning applications as standard Spark programs, which can directly run on top of existing Spark or Hadoop clusters.

Koalas is project makes data scientists more productive when interacting with big data, by implementing the pandas DataFrame API on top of Apache Spark.

Apache Spark™ MLflow is an open source platform to manage the ML lifecycle, including experimentation, reproducibility, deployment, and a central model registry. MLflow currently offers four components:

MLflow Tracking: Record and query experiments: code, data, config, and results.

MLflow Projects: Package data science code in a format to reproduce runs on any platform.

MLflow Models: Deploy machine learning models in diverse serving environments.

Model Registry: Store, annotate, discover, and manage models in a central repository.

Eclipse Deeplearning4J (DL4J) is a set of projects intended to support all the needs of a JVM-based(Scala, Kotlin, Clojure, and Groovy) deep learning application. This means starting with the raw data, loading and preprocessing it from wherever and whatever format it is in to building and tuning a wide variety of simple and complex deep learning networks.

Numba is an open source, NumPy-aware optimizing compiler for Python sponsored by Anaconda, Inc. It uses the LLVM compiler project to generate machine code from Python syntax. Numba can compile a large subset of numerically-focused Python, including many NumPy functions. Additionally, Numba has support for automatic parallelization of loops, generation of GPU-accelerated code, and creation of ufuncs and C callbacks.

Chainer is a Python-based deep learning framework aiming at flexibility. It provides automatic differentiation APIs based on the define-by-run approach (dynamic computational graphs) as well as object-oriented high-level APIs to build and train neural networks. It also supports CUDA/cuDNN using CuPy for high performance training and inference.

cuML is a suite of libraries that implement machine learning algorithms and mathematical primitives functions that share compatible APIs with other RAPIDS projects. cuML enables data scientists, researchers, and software engineers to run traditional tabular ML tasks on GPUs without going into the details of CUDA programming. In most cases, cuML's Python API matches the API from scikit-learn.

Online ML Learning Resources

Machine Learning by Stanford University from Coursera

Machine Learning Courses Online from Coursera

Machine Learning Courses Online from Udemy

Learn Machine Learning with Online Courses and Classes from edX

IoT Protocols

Back to the Top

DBus is an open source software bus developed Red Hat for inter-process communication, and remote procedure call mechanism that allows communication between multiple processes running concurrently on the same machine.

SOAP is a messaging protocol specification for exchanging structured information in the implementation of web services in computer networks. SOAP can extend HTTP for XML messaging. SOAP provides data transport for Web services. SOAP can exchange complete documents or call a remote procedure. SOAP can be used for broadcasting a message.

gRPC is a modern, open source remote procedure call (RPC) framework developed by Google that can run anywhere. It enables client and server applications to communicate transparently, and makes it easier to build connected systems.It uses HTTP/2 for transport, Protocol Buffers as the interface description language, and provides features such as authentication, bidirectional streaming and flow control, blocking or nonblocking bindings, and cancellation and timeouts.

LWM2M is a protocol from the Open Mobile Alliance for M2M or IoT device management. Lightweight M2M enabler defines the application layer communication protocol between a LWM2M Server and a LWM2M Client, which is located in a LWM2M Device.

Advanced Message Queuing Protocol (AMQP) is an open standard for passing business messages between applications or organizations. It connects systems, feeds business processes with the information they need and reliably transmits onward the instructions that achieve their goals. The defining features of AMQP are message orientation, queuing, routing, reliability and security.

Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation."

Extensible Messaging and Presence Protocol (XMPP) is a communication protocol for message-oriented middleware based on XML (Extensible Markup Language). It enables the near real-time exchange of structured yet extensible data between any two or more network entities.

OASIS Message Queuing Telemetry Transport (MQTT) is an open OASIS and ISO standard (ISO/IEC 20922) lightweight, publish-subscribe network protocol that transports messages between devices. The protocol usually runs over TCP/IP; however, any network protocol that provides ordered, lossless, bi-directional connections can support MQTT.

Very Simple Control Protocol (VSCP) is a free automation protocol suitable for all sorts of automation task where building- or home-automation is in the main focus. Its main advantage is that each VSCP-node can work completely autonomous, being part of distributed network of other nodes.

Operating systems

Back to the Top

Raspberry Pi OS

Hass.io(Home Assistant OS)

Manjaro Linux ARM

Arch Linux ARM

Ubuntu MATE for Raspberry Pi

Ubuntu Desktop for Raspberry Pi

Ubuntu Core on a Raspberry Pi

Ubuntu Server for ARM

Debian

Fedora ARM

openSUSE

SUSE

Kali Linux for the Raspberry Pi

RetroArch

RetroPie

LibreELEC

OSMC

RISC OS

Windows 10 IoT Core

HeliOS is an embedded operating system that is free for anyone to use. While called an operating system for simplicity, HeliOS is better described as a multitasking kernel for embedded systems.

Simba is a small OS for an Embedded Programming Platform like Arduino. It aims to make embedded programming easy and portable.

Trampoline is a static RTOS for small embedded systems.

DuinOS is Framework (a wrapper) for use the FreeRTOSwith Arduino.

VxWorks is an industry-leading real-time operating systems (RTOS) for building embedded devices and systems for more than 30 years.

LynxOS is a native POSIX, hard real-time partitioning operating system developed by Lynx Software Technologies.

Zephyr OS is a popular security-oriented RTOS with a small-footprint kernel designed for use on resource-constrained and embedded systems. Zephyr has a small-foorprint Kernel focusing on embedded devices compatible with x86, ARM, RISC-V, Xtensa and others.

FreeRTOS is an open source, real-time operating system for microcontrollers that makes small, low-power edge devices easy to program, deploy, secure, connect, and manage.

Arm Mbed TLS provides a comprehensive SSL/TLS solution and makes it easy for developers to include cryptographic and SSL/TLS capabilities in their software and embedded products. As an SSL library, it provides an intuitive API, readable source code and a minimal and highly configurable code footprint.

Contiki-os is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things devices.

Middleware

Back to the Top

IoTSyS is an integration middleware for the Internet of Things. It provides a communication stack for embedded devices based on IPv6, Web services, and OBIX to establish interoperable interfaces for smart objects.

OpenIoT is an open source middleware infrastructure will support flexible configuration and deployment of algorithms for collection, and filtering information streams stemming from the internet-connected objects, while at the same time generating and processing important business/applications events.

OpenRemote is an open source middleware project, which integrates many different protocols and solutions available for smart building, and smart city automation, and offers visualization tools.

Kaa is a Enterprise IoT Platform has been designed with heavy-duty, enterprise-grade IoT solutions in mind. It banishes a monolithic approach to architecture in favour of highly portable microservices, which allow for flexible rearrangement and customization even in the middle of the solution's lifecycle.

Node flow editors

Back to the Top

Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.

Toolkits

Back to the Top

KinomaJS is a visual code editor designed to help developers build starter projects for Kinoma Create and Kinoma Element. The project is built on Angular 2(RC7) and runs in a web browser. The live version is hosted using Google App Engine, but you can modify and build it yourself by following the instructions in this document.

IoT Toolkit is a collection of libraries that enables communication with modern IoT based environments and devices. It is a high-performance collection of libraries optimized for minimum memory consumption in RAM, ROM, high speed, and versatility working on any device.

Data Visualization

Back to the Top

Freeboard is an open source real-time dashboard builder for IOT and other web mashups. A free open-source alternative to Geckoboard.

ThingSpeak is an IoT analytics platform service that allows you to aggregate, visualize, and analyze live data streams in the cloud. You can send data to ThingSpeak from your devices, create instant visualization of live data, and send alerts.

Search

Back to the Top

Thingful is a Search Engine for the Internet of Things Find & use open IoT data from around the world.

Hardware

Back to the Top

Arduino Ethernet Shield 2 allows an Arduino board to connect to the internet using the Ethernet library and to read and write an SD card using the SD library.This shield is fully compatible with the former version, but relies on the newer W5500 chip.

Raspberry Pi is a series of small single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote teaching of basic computer science in schools and in developing countries. Price range from $10-45 depending on model.

BeagleBone is a low-power open-source single-board computer produced by Texas Instruments. It runs Android, Ubuntu and other Linux flavors.

openPicus FlyportPro is a system on a module dedicated to IoT and M2M application, especially for professional use. Following some details on the solution: Why FlyportPRO SoM? A system-on-module is the best solution for those customers looking for flexibility and for development time and risk reduction.

Pinoccio is a solution to add mesh networking capability and WiFi-Internet access to all yout IoT devices, and it is Arduino compatible. Each board can assume the role of Scout in a Troop and one of the Scouts is the Lead to connect internet: Field Scouts talk to each other using a mesh network (called a Troop), using an extremely low-power radio.

In-memory data grids

Back to the Top

Ehcache is an open source, standards-based cache that boosts performance, offloads your database, and simplifies scalability. It's the most widely-used Java-based cache because it's robust, proven, full-featured, and integrates with other popular libraries and frameworks.

Hazelcast is an open source in-memory data grid based on Java.

Home automation

Back to the Top

Home Assistant is open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.

openHAB is a cross-platform software with the aim to integrate all kinds of Smart Home technologies, devices, etc.

Eclipse SmartHome is a framework, not a ready-to-use solution. It offers a large set of features to choose from and leaves enough possibilities to design a Smart Home solution specific to your expectations. Its modular design brings millions of combinations and proves to be easily extensible by custom parts.

The Thing System is a set of software components and network protocols that aims to fix the Internet of Things. Our steward software is written in node.js making it both portable and easily extensible. It can run on your laptop, or fit onto a small single board computer like the Raspberry Pi.

Robotics

Back to the Top


Tools for Robotics

Open Source Robotics Foundation works with industry, academia, and government to create and support open software and hardware for use in robotics, from research and education to product development.

ROS is robotics middleware. Although ROS is not an operating system, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management.

ROS2 is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it’s all open source.

Robot Framework is a generic open source automation framework. It can be used for test automation and robotic process automation. It has easy syntax, utilizing human-readable keywords. Its capabilities can be extended by libraries implemented with Python or Java.

The Robotics Library (RL) is a self-contained C++ library for robot kinematics, motion planning and control. It covers mathematics, kinematics and dynamics, hardware abstraction, motion planning, collision detection, and visualization.RL runs on many different systems, including Linux, macOS, and Windows. It uses CMake as a build system and can be compiled with Clang, GCC, and Visual Studio.

MoveIt is the most widely used software for manipulation and has been used on over 100 robots. It provides an easy-to-use robotics platform for developing advanced applications, evaluating new designs and building integrated products for industrial, commercial, R&D, and other domains.

AutoGluon is toolkit for Deep learning that automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy deep learning models on tabular, image, and text data.

Gazebo accurately and efficiently simulates indoor and outdoor robots. You get a robust physics engine, high-quality graphics, and programmatic and graphical interfaces.

Robotics System Toolbox provides tools and algorithms for designing, simulating, and testing manipulators, mobile robots, and humanoid robots. For manipulators and humanoid robots, the toolbox includes algorithms for collision checking, trajectory generation, forward and inverse kinematics, and dynamics using a rigid body tree representation. For mobile robots, it includes algorithms for mapping, localization, path planning, path following, and motion control. The toolbox provides reference examples of common industrial robot applications. It also includes a library of commercially available industrial robot models that you can import, visualize, and simulate.

Intel Robot DevKit is the tool to generate Robotics Software Development Kit (RDK) designed for autonomous devices, including the ROS2 core and capacibilities packages like perception, planning, control driver etc. It provides flexible build/runtime configurations to meet different autonomous requirement on top of diversity hardware choices, for example use different hareware engine CPU/GPU/VPU to accelerate AI related features.

Arduino is an open-source platform used for building electronics projects. Arduino consists of both a physical programmable circuit board (often referred to as a microcontroller) and a piece of software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.

ArduPilot enables the creation and use of trusted, autonomous, unmanned vehicle systems for the peaceful benefit of all. ArduPilot provides a comprehensive suite of tools suitable for almost any vehicle and application.

AirSim is a simulator for drones, cars and more, built on Unreal Engine (we now also have an experimental Unity release). It is open-source, cross platform, and supports hardware-in-loop with popular flight controllers such as PX4 for physically and visually realistic simulations.

F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Originally developed at the Jet Propulsion Laboratory, F´ has been successfully deployed on several space applications.

The JPL Open Source Rover is an open source, build it yourself, scaled down version of the 6 wheel rover design that JPL uses to explore the surface of Mars. The Open Source Rover is designed almost entirely out of consumer off the shelf (COTS) parts. This project is intended to be a teaching and learning experience for those who want to get involved in mechanical engineering, software, electronics, or robotics.

Light Detection and Ranging(LiDAR) is a remote sensing method that uses light in the form of a pulsed laser at an object, and uses the time and wavelength of the reflected beam of light to estimate the distance and in some applications (Laser Imaging), to create a 3D representation of the object and its surface characteristics. This technology is commonly used in aircraft and self-driving vehicles.

Neurorobotics Platform (NRP) is an Internet-accessible simulation system that allows the simulation of robots controlled by spiking neural networks.

ViSP is an open-source visual servoing platform library, is able to compute control laws that can be applied to robotic systems.

ROS Behavior Trees is an open-source library to create robot's behaviors in form of Behavior Trees running in ROS (Robot Operating System).

g2core is an open-source motion control software for CNC and Robotics, designed to run on Arduino Due class microcontrollers.

ur5controller is an open-source OpenRAVE controller for UR5 robot integrated with ROS.

RBDL is an open-source (zlib) C++ libray for both forward and inverse dynamics and kinematics. Also supports contacts and loops.

Unity Robotics Hub is a Central repository for open-source Unity packages, tutorials, and other resources demonstrating how to use Unity for robotics simulations. Includes new support for ROS integration.

AliceVision is a Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms. AliceVision aims to provide strong software basis with state-of-the-art computer vision algorithms that can be tested, analyzed and reused. The project is a result of collaboration between academia and industry to provide cutting-edge algorithms with the robustness and the quality required for production usage.

CARLA is an open-source simulator for autonomous driving research. CARLA has been developed from the ground up to support development, training, and validation of autonomous driving systems. In addition to open-source code and protocols, CARLA provides open digital assets (urban layouts, buildings, vehicles) that were created for this purpose and can be used freely. The simulation platform supports flexible specification of sensor suites and environmental conditions.

ROS bridge is a package to bridge ROS for CARLA Simulator.

ROS-Industrial is an open source project that extends the advanced capabilities of ROS software to manufacturing.

AWS RoboMaker is the most complete cloud solution for robotic developers to simulate, test and securely deploy robotic applications at scale. RoboMaker provides a fully-managed, scalable infrastructure for simulation that customers use for multi-robot simulation and CI/CD integration with regression testing in simulation.

Microsoft Robotics Developer Studio is a free .NET-based programming environment for building robotics applications.

Visual Studio Code Extension for ROS is an extension provides support for Robot Operating System (ROS) development.

Azure Kinect ROS Driver is a node which publishes sensor data from the Azure Kinect Developer Kit to the Robot Operating System (ROS). Developers working with ROS can use this node to connect an Azure Kinect Developer Kit to an existing ROS installation.

Azure IoT Hub for ROS is a ROS package works with the Microsoft Azure IoT Hub service to relay telemetry messages from the Robot to Azure IoT Hub or reflect properties from the Digital Twin to the robot using dynamic reconfigure.

ROS 2 with ONNX Runtime is a program that uses ROS 2 to run on different hardware platforms using their respective AI acceleration libraries for optimized execution of the ONNX model.

Azure Cognitive Services LUIS ROS Node is a ROS node that bridges between ROS and the Azure Language Understanding Service. it can be configured to process audio directly from a microphone, or can subscribe to a ROS audio topic, then processes speech and generates "intent" ROS messages which can be processed by another ROS node to generate ROS commands.

Robotics Learning Resources

Robotics courses from Coursera

Learn Robotics with Online Courses and Classes from edX

Top Robotics Courses Online from Udemy

Free Online AI & Robotics Courses

REC Foundation Robotics Industry Certification

Carnegie Mellon Robotics Academy

RIA Robotic Integrator Certification Program

AWS RoboMaker – Develop, Test, Deploy, and Manage Intelligent Robotics Apps

Microsoft AI School

Language Understanding (LUIS) for Azure Cognitive Services

Azure VM templates to bootstrap ROS and ROS 2 environments

Google Robotics Research

Mesh networks

Back to the Top

Zigbee is the full-stack, secure, reliable, and market-proven solution used by a majority of large smart home ecosystem providers, such as Amazon's Echo Plus, Samsung SmartThings, Signify (Philips Hue), and more.

Open Garden develops the FireChat mobile application, which enables peer-to-peer mobile Internet connection sharing with faster and more efficient data transmissions by automatically and actively choosing and switching to the best available network without requiring users to manually sift through available networks to find the best one available.

OpenWSN is a project created at the University of California Berkeley and extended at the INRIA and at the Open University of Catalonia which aims to build an open standard-based and open source implementation of a complete constrained network protocol stack for wireless sensor networks and Internet of Things.

Blockchain Development

Back to the Top


Blockchain Learning Resources

Blockchain is a distributed database meaning that the storage devices used for the database are not all connected to a common processor. It maintains a growing decentralized digital list of ordered records, called blocks. Each block has a timestamp and a link to a previous block. By the system being decentralization it allows for complete transparency in all shared information.

IBM Blockchain Essentials

Getting started with Blockchain Development

Blockchain Developer Nanodegree program | Udacity

Blockchain Programming: Build a blockchain and cryptocurrency from scratch using Python | Udemy

Blockchain Courses by Coursera

Blockchain Courses by edX

Blockchain Certifications

Blockchain Tools, Libraries and Frameworks

Lightning Network (LN) is a decentralized network using smart contract functionality in the blockchain to enable instant payments across a network of participants. It was created in response to scalability issues with Bitcoin, namely the speed and cost of Bitcoin transactions. Bitcoin's current theoretical maximum transactions per second (TPS) is 10, though in reality it is between 3 and 7.


Hyperledger is an open source community focused on developing a suite of stable frameworks, tools and libraries for enterprise-grade blockchain deployments. It serves as a neutral home for various distributed ledger frameworks including Hyperledger Fabric, Sawtooth, Indy, as well as tools like Hyperledger Caliper and libraries like Hyperledger Ursa.

Hyperledger Caliper is a blockchain benchmark tool, it allows users to measure the performance of a blockchain implementation with a set of predefined use cases. Hyperledger Caliper will produce reports containing a number of performance indicators to serve as a reference when using the following blockchain solutions: Hyperledger Besu, Hyperledger Burrow, Ethereum, Hyperledger Fabric, FISCO BCOS, Hyperledger Iroha and Hyperledger Sawtooth.

Hyperledger Ursa is a shared cryptographic library, it enables implementations to avoid duplicating other cryptographic work and hopefully increase security in the process. The library is an opt-in repository (for Hyperledger and non Hyperledger projects) to place and use crypto. Hyperledger Ursa consists of sub-projects, which are cohesive implementations of cryptographic code or interfaces to cryptographic code.

Hyperledger Fabric is an enterprise-grade permissioned distributed ledger framework for developing solutions and applications. Its modular and versatile design satisfies a broad range of industry use cases. It offers a unique approach to consensus that enables performance at scale while preserving privacy.

Geth is an implementation of an Ethereum node in the Go programming language.

Solidity is a purposefully slimmed down, loosely-typed language with a syntax very similar to ECMAScript (Javascript) that is used for the creation of smart contracts on the Ethereum blockchain.

GanacheCLI (NodeJS package) is a fast and customizable blockchain emulator. It simulates the Ethereum network on a single computer and allows you to make calls to the blockchain without any of the hassles of running a real Ethereum node.

Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier.

Ethers.js is a library which was made for and is used by ethers.io. It is designed to make it easier to write client-side JavaScript based wallets, keeping the private key on the owner’s machine at all times.

OpenEthereum is a fast and feature-rich multi-network Ethereum client.

Quorum is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms.

Diesel is a safe, extensible ORM and Query Builder for Rust.

BlockShell is a minimal command line utility for learning Blockchain technical concepts like chaining & mining.

Tendermint Core is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine written in any programming language and securely replicates it on many machines.

inDEX is a comprehensive list of decentralized exchanges (DEX) of cryptocurrencies, tokens, derivatives and futures, and their protocols.

Squeezer is a platform that empowers new-entry blockchain developers to build serverless dApps easily.

Node.js Development

Back to the Top


Node.js Learning Resources

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine that lets developers write command line tools and server-side scripts outside of a browser.

Node.js Build Working Group maintains and controls infrastructure used for continuous integration (CI), releases, benchmarks, web hosting (of nodejs.org and other Node.js web properties) and more.

The OpenJS Foundation is made up of 32 open source JavaScript projects including Appium, Dojo, Electron, jQuery, Node.js, and webpack. The foundation's mission is to support the healthy growth of JavaScript and web technologies by providing a neutral organization to host and sustain projects, as well as collaboratively fund activities that benefit the ecosystem as a whole.

Set up NodeJS on WSL 2

Getting started with Node.js in Google Cloud

Getting Started with Node.js in AWS

Node.js App Hosting & Deployment in Microsoft Azure

The Node.js best practices list

Introduction to Node.js by W3Schools

The Node.js Community Committee

Node.js Mentorship Program Initiative

Node.js tutorial in Visual Studio Code

Server-side Development with NodeJS, Express and MongoDB on Coursera

Node.js Tools

NPM is the company behind Node package manager, the npm Registry, and npm CLI.

node-gyp is a cross-platform command-line tool written in Node.js for compiling native addon modules for Node.js. It contains a vendored copy of the gyp-next project that was previously used by the Chromium team, extended to support the development of Node.js native addons.

nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL.

node-docker is the official Node.js docker image, made with love by the node community.

Mocha is a simple, flexible, fun JavaScript test framework for Node.js & The Browser.

AVA is a test runner for Node.js with a concise API, detailed error output, embrace of new language features and process isolation that lets you develop with confidence.

egg is a born to build better enterprise frameworks and apps with Node.js & Koa.

mysqljs is a pure node.js JavaScript Client implementing the MySQL protocol.

axios is a promise based HTTP client for the browser and node.js.

Fastify is a fast and low overhead web framework, for Node.js.

Express is a fast, unopinionated, minimalist web framework for node.

Meteor is an ultra-simple environment for building modern web applications with JavavScript.

NW.js is an app runtime based on Chromium and node.js. You can write native apps in HTML and JavaScript with NW.js. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies.

PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.

NestJS is a framework for building efficient, scalable Node.js web applications. It uses modern JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).

jenkins-nodejs is a Jenkins plugin for Node.js that provides the NodeJS auto-installer, allowing to create as many NodeJS installations "profiles" as you want.

Strapi is an open source Node.js Headless CMS to easily build customisable APIs.

Standard is a JavaScript Style Guide, with linter & automatic code fixer.

React Starter Kit is an isomorphic web app boilerplate for web development built on top of Node.js, Express, GraphQL and React, containing modern web development tools such as Webpack, Babel and Browsersync. Helping you to stay productive following the best practices.

Hexo is a A fast, simple & powerful blog framework, powered by Node.js.

C/C++ Development

Back to the Top


C/C++ Learning Resources

C++ is a cross-platform language that can be used to build high-performance applications developed by Bjarne Stroustrup, as an extension to the C language.

C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. It supports structured programming, lexical variable scope, and recursion, with a static type system. C also provides constructs that map efficiently to typical machine instructions, which makes it one was of the most widely used programming languages today.

Embedded C is a set of language extensions for the C programming language by the C Standards Committee to address issues that exist between C extensions for different embedded systems. The extensions hep enhance microprocessor features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations. This makes Embedded C the most popular embedded software language in the world.

C & C++ Developer Tools from JetBrains

Open source C++ libraries on cppreference.com

C++ Graphics libraries

C++ Libraries in MATLAB

C++ Tools and Libraries Articles

Google C++ Style Guide

Introduction C++ Education course on Google Developers

C++ style guide for Fuchsia

C and C++ Coding Style Guide by OpenTitan

Chromium C++ Style Guide

C++ Core Guidelines

C++ Style Guide for ROS

Learn C++

Learn C : An Interactive C Tutorial

C++ Institute

C++ Online Training Courses on LinkedIn Learning

C++ Tutorials on W3Schools

Learn C Programming Online Courses on edX

Learn C++ with Online Courses on edX

Learn C++ on Codecademy

Coding for Everyone: C and C++ course on Coursera

C++ For C Programmers on Coursera

Top C Courses on Coursera

C++ Online Courses on Udemy

Top C Courses on Udemy

C++ For Programmers Course on Udacity

C++ Fundamentals Course on Pluralsight

Introduction to C++ on MIT Free Online Course Materials

Introduction to C++ for Programmers | Harvard

Online C Courses | Harvard University

C/C++ Tools

Visual Studio is an integrated development environment (IDE) from Microsoft; which is a feature-rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.

Vcpkg is a C++ Library Manager for Windows, Linux, and MacOS.

ReSharper C++ is a Visual Studio Extension for C++ developers developed by JetBrains.

AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages. All code inspections are run on the fly.

CLion is a cross-platform IDE for C and C++ developers developed by JetBrains.

Code::Blocks is a free C/C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable. Built around a plugin framework, Code::Blocks can be extended with plugins.

CppSharp is a tool and set of libraries which facilitates the usage of native C/C++ code with the .NET ecosystem. It consumes C/C++ header and library files and generates the necessary glue code to surface the native API as a managed API. Such an API can be used to consume an existing native library in your managed code or add managed scripting support to a native codebase.

Conan is an Open Source Package Manager for C++ development and dependency management into the 21st century and on par with the other development ecosystems.

High Performance Computing (HPC) SDK is a comprehensive toolbox for GPU accelerating HPC modeling and simulation applications. It includes the C, C++, and Fortran compilers, libraries, and analysis tools necessary for developing HPC applications on the NVIDIA platform.

Thrust is a C++ parallel programming library which resembles the C++ Standard Library. Thrust's high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. Interoperability with established technologies such as CUDA, TBB, and OpenMP integrates with existing software.

Boost is an educational opportunity focused on cutting-edge C++. Boost has been a participant in the annual Google Summer of Code since 2007, in which students develop their skills by working on Boost Library development.

Automake is a tool for automatically generating Makefile.in files compliant with the GNU Coding Standards. Automake requires the use of GNU Autoconf.

Cmake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice.

GDB is a debugger, that allows you to see what is going on `inside' another program while it executes or what another program was doing at the moment it crashed.

GCC is a compiler Collection that includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages.

GSL is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.

OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.

Libtool is a generic library support script that hides the complexity of using shared libraries behind a consistent, portable interface. To use Libtool, add the new generic library building commands to your Makefile, Makefile.in, or Makefile.am.

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

TAU (Tuning And Analysis Utilities) is capable of gathering performance information through instrumentation of functions, methods, basic blocks, and statements as well as event-based sampling. All C++ language features are supported including templates and namespaces.

Clang is a production quality C, Objective-C, C++ and Objective-C++ compiler when targeting X86-32, X86-64, and ARM (other targets may have caveats, but are usually easy to fix). Clang is used in production to build performance-critical software like Google Chrome or Firefox.

OpenCV is a highly optimized library with focus on real-time applications. Cross-Platform C++, Python and Java interfaces support Linux, MacOS, Windows, iOS, and Android.

Libcu++ is the NVIDIA C++ Standard Library for your entire system. It provides a heterogeneous implementation of the C++ Standard Library that can be used in and between CPU and GPU code.

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface that makes it easy to respond to the recognition of phrases of interest.

Oat++ is a light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.

JavaCPP is a program that provides efficient access to native C++ inside Java, not unlike the way some C/C++ compilers interact with assembly language.

Cython is a language that makes writing C extensions for Python as easy as Python itself. Cython is based on Pyrex, but supports more cutting edge functionality and optimizations such as calling C functions and declaring C types on variables and class attributes.

Spdlog is a very fast, header-only/compiled, C++ logging library.

Infer is a static analysis tool for Java, C++, Objective-C, and C. Infer is written in OCaml.

Java Development

Back to the Top


Java Learning Resources

Java is a popular programming language and development platform(JDK). It reduces costs, shortens development timeframes, drives innovation, and improves application services. With millions of developers running more than 51 billion Java Virtual Machines worldwide.

The Eclipse Foundation is home to a worldwide community of developers, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks for Java and other languages.

Getting Started with Java

Oracle Java certifications from Oracle University

Google Developers Training

Google Developers Certification

Java Tutorial by W3Schools

Building Your First Android App in Java

Getting Started with Java in Visual Studio Code

Google Java Style Guide

AOSP Java Code Style for Contributors

Chromium Java style guide

Get Started with OR-Tools for Java

Getting started with Java Tool Installer task for Azure Pipelines

Gradle User Manual

Java Tools & Frameworks

Java SE contains several tools to assist in program development and debugging, and in the monitoring and troubleshooting of production applications.

JDK Development Tools includes the Java Web Start Tools (javaws) Java Troubleshooting, Profiling, Monitoring and Management Tools (jcmd, jconsole, jmc, jvisualvm); and Java Web Services Tools (schemagen, wsgen, wsimport, xjc).

Android Studio is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. Availble on Windows, macOS, Linux, Chrome OS.

IntelliJ IDEA is an IDE for Java, but it also understands and provides intelligent coding assistance for a large variety of other languages such as Kotlin, SQL, JPQL, HTML, JavaScript, etc., even if the language expression is injected into a String literal in your Java code.

NetBeans is an IDE provides Java developers with all the tools needed to create professional desktop, mobile and enterprise applications. Creating, Editing, and Refactoring. The IDE provides wizards and templates to let you create Java EE, Java SE, and Java ME applications.

Java Design Patterns is a collection of the best formalized practices a programmer can use to solve common problems when designing an application or system.

Elasticsearch is a distributed RESTful search engine built for the cloud written in Java.

RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences. It extends the observer pattern to support sequences of data/events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety and concurrent data structures.

Guava is a set of core Java libraries from Google that includes new collection types (such as multimap and multiset), immutable collections, a graph library, and utilities for concurrency, I/O, hashing, caching, primitives, strings, and more! It is widely used on most Java projects within Google, and widely used by many other companies as well.

okhttp is a HTTP client for Java and Kotlin developed by Square.

Retrofit is a type-safe HTTP client for Android and Java develped by Square.

LeakCanary is a memory leak detection library for Android develped by Square.

Apache Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that supports general computation graphs for data analysis. It also supports a rich set of higher-level tools including Spark SQL for SQL and DataFrames, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for stream processing.

Apache Flink is an open source stream processing framework with powerful stream- and batch-processing capabilities with elegant and fluent APIs in Java and Scala.

Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object.

libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, Mac OS X, Android, your WebGL enabled browser and iOS.

Jenkins is the leading open-source automation server. Built with Java, it provides over 1700 plugins to support automating virtually anything, so that humans can actually spend their time doing things machines cannot.

DBeaver is a free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports any database which has JDBC driver (which basically means - ANY database). EE version also supports non-JDBC datasources (MongoDB, Cassandra, Redis, DynamoDB, etc).

Redisson is a Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, and local cache.

GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Clojure, Kotlin, and LLVM-based languages such as C and C++.

Gradle is a build automation tool for multi-language software development. From mobile apps to microservices, from small startups to big enterprises, Gradle helps teams build, automate and deliver better software, faster. Write in Java, C++, Python or your language of choice.

Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.

JaCoCo is a free code coverage library for Java, which has been created by the EclEmma team based on the lessons learned from using and integration existing libraries for many years.

Apache JMeter is used to test performance both on static and dynamic resources, Web dynamic applications. It also used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.

Junit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.

Mockito is the most popular Mocking framework for unit tests written in Java.

SpotBugs is a program which uses static analysis to look for bugs in Java code.

SpringBoot is a great tool that helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need.

YourKit is a technology leader, creator of the most innovative and intelligent tools for profiling Java & .NET applications.

Python Development

Back to the Top


Python Learning Resources

Python is an interpreted, high-level programming language. Python is used heavily in the fields of Data Science and Machine Learning.

Python Developer’s Guide is a comprehensive resource for contributing to Python – for both new and experienced contributors. It is maintained by the same community that maintains Python.

Azure Functions Python developer guide is an introduction to developing Azure Functions using Python. The content below assumes that you've already read the Azure Functions developers guide.

CheckiO is a programming learning platform and a gamified website that teaches Python through solving code challenges and competing for the most elegant and creative solutions.

Python Institute

PCEP – Certified Entry-Level Python Programmer certification

PCAP – Certified Associate in Python Programming certification

PCPP – Certified Professional in Python Programming 1 certification

PCPP – Certified Professional in Python Programming 2

MTA: Introduction to Programming Using Python Certification

Getting Started with Python in Visual Studio Code

Google's Python Style Guide

Google's Python Education Class

Real Python

The Python Open Source Computer Science Degree by Forrest Knight

Intro to Python for Data Science

Intro to Python by W3schools

Codecademy's Python 3 course

Learn Python with Online Courses and Classes from edX

Python Courses Online from Coursera

Python Frameworks and Tools

Python Package Index (PyPI) is a repository of software for the Python programming language. PyPI helps you find and install software developed and shared by the Python community.

PyCharm is the best IDE I've ever used. With PyCharm, you can access the command line, connect to a database, create a virtual environment, and manage your version control system all in one place, saving time by avoiding constantly switching between windows.

Python Tools for Visual Studio(PTVS) is a free, open source plugin that turns Visual Studio into a Python IDE. It supports editing, browsing, IntelliSense, mixed Python/C++ debugging, remote Linux/MacOS debugging, profiling, IPython, and web development with Django and other frameworks.

Pylance is an extension that works alongside Python in Visual Studio Code to provide performant language support. Under the hood, Pylance is powered by Pyright, Microsoft's static type checking tool.

Pyright is a fast type checker meant for large Python source bases. It can run in a “watch” mode and performs fast incremental updates when files are modified.

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.

Web2py is an open-source web application framework written in Python allowing allows web developers to program dynamic web content. One web2py instance can run multiple web sites using different databases.

AWS Chalice is a framework for writing serverless apps in python. It allows you to quickly create and deploy applications that use AWS Lambda.

Tornado is a Python web framework and asynchronous networking library. Tornado uses a non-blocking network I/O, which can scale to tens of thousands of open connections.

HTTPie is a command line HTTP client that makes CLI interaction with web services as easy as possible. HTTPie is designed for testing, debugging, and generally interacting with APIs & HTTP servers.

Scrapy is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.

Sentry is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any language, in any application.

Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world.

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library.

CherryPy is a minimalist Python object-oriented HTTP web framework.

Sanic is a Python 3.6+ web server and web framework that's written to go fast.

Pyramid is a small and fast open source Python web framework. It makes real-world web application development and deployment more fun and more productive.

TurboGears is a hybrid web framework able to act both as a Full Stack framework or as a Microframework.

Falcon is a reliable, high-performance Python web framework for building large-scale app backends and microservices with support for MongoDB, Pluggable Applications and autogenerated Admin.

Neural Network Intelligence(NNI) is an open source AutoML toolkit for automate machine learning lifecycle, including Feature Engineering, Neural Architecture Search, Model Compression and Hyperparameter Tuning.

Dash is a popular Python framework for building ML & data science web apps for Python, R, Julia, and Jupyter.

Luigi is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built-in.

Locust is an easy to use, scriptable and scalable performance testing tool.

spaCy is a library for advanced Natural Language Processing in Python and Cython.

NumPy is the fundamental package needed for scientific computing with Python.

Pillow is a friendly PIL(Python Imaging Library) fork.

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history.

GraphLab Create is a Python library, backed by a C++ engine, for quickly building large-scale, high-performance machine learning models.

Pandas is a fast, powerful, and easy to use open source data structrures, data analysis and manipulation tool, built on top of the Python programming language.

PuLP is an Linear Programming modeler written in python. PuLP can generate LP files and call on use highly optimized solvers, GLPK, COIN CLP/CBC, CPLEX, and GUROBI, to solve these linear problems.

Matplotlib is a 2D plotting library for creating static, animated, and interactive visualizations in Python. Matplotlib produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms.

Scikit-Learn is a simple and efficient tool for data mining and data analysis. It is built on NumPy,SciPy, and mathplotlib.

Rust Development

Back to the Top


Rust Learning Resources

Rust is a multi-paradigm programming language focused on performance and safety. Rust has a comparable amount of runtime to C and C++, and has set up its standard library to be amenable towards OS development. Specifically, the standard library is split into two parts: core and std. Core is the lowest-level aspects only, and doesn't include things like allocation, threading, and other higher-level features.

The Rust Language Reference

The Rust Programming Language Book

Learning Rust

Why AWS loves Rust

Rust Programming courses on Udemy

Safety in Systems Programming with Rust at Standford by Ryan Eberhardt

WebAssembly meets Kubernetes with Krustlet using Rust

Microsoft's Project Verona

Rust Tools

Cargo is a package manager that downloads your Rust project’s dependencies and compiles your project.

Crater is a tool to run experiments across parts of the Rust ecosystem. Its primary purpose is to detect regressions in the Rust compiler, and it does this by building a large number of crates, running their test suites and comparing the results between two versions of the Rust compiler. It can operate locally (with Docker as the only dependency) or distributed on the cloud.

VSCode-Rust is plugin that adds language support for Rust to Visual Studio Code. Rust support is powered by a separate language server - either by the official Rust Language Server (RLS) or rust-analyzer, depending on the user's preference. If you don't have it installed, the extension will install it for you (with permission). This extension is built and maintained by the Rust IDEs and editors team with the focus on providing a stable, high quality extension that makes the best use of the respective language server.

Apache Arrow is a development platform for in-memory analytics. It contains a set of technologies that enable big data systems to process and move data fast. Arrow's libraries are available for C, C++, C#, Go, Java, JavaScript, MATLAB, Python, R, Ruby, and Rust.

Wasmer enables super lightweight containers based on WebAssembly that can run anywhere such as the Desktop to the Cloud and IoT devices, and also embedded in any programming language.

Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers. Firecracker has also been integrated in container runtimes, for example Kata Containers and Weaveworks Ignite.

Tokio is an event-driven, non-blocking I/O platform for writing asynchronous applications with the Rust programming language.

TiKV is an open-source distributed transactional key-value database that also provides classical key-vlue APIs, but also transactional APIs with ACID compliance.

Sonic is a fast, lightweight and schema-less search backend similar to Elasticsearch in some use-cases.

Hyper is a fast and correct HTTP library for Rust.

Rocket is an async web framework for Rust with a focus on usability, security, extensibility, and speed.

Clippy is a collection of lints to catch common mistakes and improve your Rust code.

Servo is a prototype web browser engine written in the Rust language.

Vector is a high-performance, end-to-end (agent & aggregator) observability data platform that puts the user in control of their observability data.

RustPython is a Python Interpreter written in Rust.

Miri is an interpreter for Rust's mid-level intermediate representation. It can run binaries and test suites of cargo projects and detect certain classes of undefined behavior. Miri will alsowill also tell you about memory leaks: when there is memory still allocated at the end of the execution, and that memory is not reachable from a global static, Miri will raise an error.

Chalk is an implementation and definition of the Rust trait system using a PROLOG-like logic solver.

stdarch is Rust's standard library vendor-specific APIs and run-time feature detection.

Simpleinfra is rep that contains the tools and automation written by the Rust infrastructure team to manage our services. Using some of the tools in this repo require privileges only infra team members have.

Rustlings is a small set of exercises to get you used to reading and writing Rust code.

Krustlet acts as a Kubernetes Kubelet(written in Rust) by listening on the event stream for new pods that the scheduler assigns to it based on specific Kubernetes tolerations. The project is currently experimental.

Operating System

Redox is a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications. Acitvely being developed by Jeremy Soeller.

Bottlerocket OS is an open-source Linux-based operating system meant for hosting containers. Bottlerocket focuses on security and maintainability, providing a reliable, consistent, and safe platform for container-based workloads.

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers. Tock uses two mechanisms to protect different components of the operating system. First, the kernel and device drivers are written in Rust, a systems programming language that provides compile-time memory safety, type safety and strict aliasing. Tock uses Rust to protect the kernel (the scheduler and hardware abstraction layer) from platform specific device drivers as well as isolate device drivers from each other. Second, Tock uses memory protection units to isolate applications from each other and the kernel.

Rust on Chrome OS is a document that provides information on creating Rust projects for installation within Chrome OS and Chrome OS SDK.

Writing an OS in Rust is a blog series creates a small operating system in the Rust programming language by Philipp Oppermann.

Swift Development

Back to the Top

Swift Learning Resources

Swift is Apple's main programming language for iOS, macOS, watchOS, and tvOS app development. Though, many parts of Swift will be familiar to developers from their experience of developing in C and Objective-C.

Swift Evolution maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

Xcode + Swift makes developing applications for MacOS and iOS fast and fun.

Swift 5.3 Basics

Start Developing iOS Apps with Swift

Apple Developer Documentation

Apple Foundation Framework

Apple Core Animation Framework

Apple Core Graphics Framework

Getting Started with LLDB

Mac Catalyst - iOS - Human Interface Guidelines

Amazon EC2 Mac Instances

Swift GitHub

Apple Developer Forums

Swift Forums

Google's Swift Style Guide

Swift Courses Online from Coursera

Swift Courses Online from Udemy

Learning Swift course from Codecademy

Swift Tools

Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Xcode 12 is built as an Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon. It includes a unified macOS SDK that features all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.

SwiftUI is a user interface toolkit that provides views, controls, and layout structures for declaring your app's user interface. The SwiftUI framework provides event handlers for delivering taps, gestures, and other types of input to your application.

UIKit is a framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app.

AppKit is a graphical user interface toolkit that contains all the objects you need to implement the user interface for a macOS app such as windows, panels, buttons, menus, scrollers, and text fields, and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.

ARKit is a set set of software development tools to enable developers to build augmented-reality apps for iOS developed by Apple. The latest version ARKit 3.5 takes advantage of the new LiDAR Scanner and depth sensing system on iPad Pro(2020) to support a new generation of AR apps that use Scene Geometry for enhanced scene understanding and object occlusion.

RealityKit is a framework to implement high-performance 3D simulation and rendering with information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.

SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your iOS apps.

Mac Catalyst is a set of Apple APIs that developers can use to rapidly port their iOS apps to Apple Silicon M1 Chip and take full advantage of the new capabilities on the new Apple hardware.

Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your iOS, watchOS, tvOS, and macOS apps, processes, and devices in order to better understand and optimize their behavior and performance.

Cocoapods is a dependency manager for Swift and Objective-C used in Xcode projects by specifying the dependencies for your project in a simple text file. CocoaPods then recursively resolves dependencies between libraries, fetches source code for all dependencies, and creates and maintains an Xcode workspace to build your project.

AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages.

Vapor is a web framework for Swift. It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project.

Hero is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit's cumbersome transition APIs—making custom transitions an easy task for developers.

Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. It provides you a chance to use a pure-Swift way to work with remote images in your next app.

Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the iOS, macOS, tvOS & watchOS versions of Realm Swift & Realm Objective-C.

Perfect is a complete and powerful toolbox, framework, and application server for Linux, iOS, and macOS (OS X). It provides everything a Swift engineer needs for developing lightweight, maintainable, and scalable apps and other REST services entirely in the Swift programming language for both client-facing and server-side applications.

Alamofire is an HTTP networking library written in Swift.

Eureka is an elegant iOS form builder in Swift

Carthage is intended to be the simplest way to add frameworks to your Cocoa application. Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup. Carthage does not automatically modify your project files or your build settings.

ReactiveCocoa is reactive extensions to Cocoa frameworks, built on top of ReactiveSwift.

XML Development

Back to the Top


XML Learning Resources

XML(Extensible Markup Language) is a markup language that is similar to HTML but without predefined tags. Instead, the user define their own tags designed specifically for their needs.

XAML is a declarative XML-based markup language that is applied to the .NET Core programming model, which XAML simplifies creating a UI for a .NET Core app.

Using XML editor in Visual Studio

XMLmind XML Editor Tutorial

XMLReader for Android Developers

Adding app configuration policies for managed iOS/iPadOS devices

XML Processing Modules for Python 3

PHP: XML Parser Manual

Introduction to XML on W3Schools

Introduction to XML by IBM

XML Fundamentals Training Program from Oracle University

XML Online Training Courses on Udemy

XML Schema (XSD) Crash Course for Beginners on Udemy

XML Online Training Courses on Coursera

XML Online Training Courses on LinkedIn Learning

Introduction to Microsoft Office Open XML on Pluralsight

XML Fundamentals in C# on Pluralsight

Working with XML in Java Using JAXB

Querying JSON, XML, and Temporal Data with T-SQL

XML Training Courses on NobleProg

XML Tools and Frameworks

Visual Studio is an integrated development environment (IDE) from Microsoft; which is a feature-rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.

MSBuild is the build platform for .NET and Visual Studio. MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild to perform team builds through Azure DevOps Server, but MSBuild can run without Visual Studio.

WebStorm is a professional IDE for JavaScript(including support for both HTML and CSS) developed by JetBrains. WebStorm comes with intelligent code completion, on-the-fly error detection, powerful navigation and refactoring for JavaScript, TypeScript, stylesheet languages, and all the most popular frameworks(Angular, React, Vue.js, Ionic, Apache Cordova, React Native, Node.js, Meteor, and Electron).

Uno Platform is a Universal Windows Platform Bridge that allows UWP-based code (C# and XAML) to run on iOS, Android, macOS, WebAssembly, Linux and Windows. It provides the full definitions of the UWP Windows 10 2004 (19041), and the implementation of a growing number of parts of the UWP API, such as Windows.UI.Xaml, to enable UWP and WinUI applications to run on these platforms.

Android Studio は Google の Android オペレーティングシステム用の公式の統合開発環境であり、JetBrains の IntelliJ IDEA ソフトウェア上に構築され、Android 開発用に特別に設計されています。Windows、macOS、Linux、Chrome OSで利用できます。

酸素XMLエディタは、XML編集の標準を設定するクロスプラットフォームのツールです。高度な XML エディターは、XML の編集、作成、および開発のための最も直感的なツールを提供します。Windows、macOS、およびLinuxで利用できます。

XMLmind XML エディターは、厳密に検証する XML エディターです。広範なDITA 1.3をサポートしており、軽量のDITA、XDITA、HDITA、MDITAが含まれています。

Refit は、.NET Core、.NET および Xamarin 用の自動タイプ セーフな REST ライブラリです。

PugixmlはC ++ XML処理ライブラリで、豊富なトラバーサル/変更機能を備えたDOMライクなインターフェイス、XMLファイル/バッファからDOMツリーを構築する非常に高速なXMLパーサ、複雑なデータ駆動型ツリークエリ用のXPath 1.0実装で構成されています。

シリアライザーは、オブジェクト グラフを含むデータ構造を配列構造や XML や JSON などの他の形式にシリアル化することを容易にするコンポーネントです。また、XML と JSON をオブジェクト グラフに戻す逆シリアル化を処理することもできます。

Erlsom は Erlang 用の XML パーサーです。

REST-assurance は、REST サービスを簡単にテストするための Java DSL です。

貢献する

ライセンス

このページのトップへ戻る

クリエイティブ・コモンズ 表示 4.0 インターナショナル (CC BY 4.0) パブリック・ライセンスの下で配布されています。