7/28付のGitHub Trendingからいくつかピックアップして紹介します。

1. carbon-lang: C++の後継言語

GitHub: https://github.com/carbon-language/carbon-lang

2022年7月のCppNorth会議で新しい言語Carbonが公開されました。
CarbonはC++の後継言語として作成され、C++のいくつかの欠点を修正することを意図していますが、それ以外は同様の機能セットもあります。

・パフォーマンスが重要なソフトウェア
・ソフトウェアと言語の進化
・読みやすく、理解しやすく、書きやすいコード
・実用的な安全性と試験メカニズム
・迅速かつスケーラブルな開発
・最新のOSプラットフォーム、ハードウェアアーキテクチャ、および環境
・既存の C++ コードとの相互運用性と既存の C++ コードからの移行

公式によると、C++とCarbon書き方の対象図も載せています:

C++

// C++:
#include <math.h>
#include <iostream>
#include <span>
#include <vector>

struct Circle {
  float r;
};

void PrintTotalArea(std::span<Circle> circles) {
  float area = 0;
  for (const Circle& c : circles) {
    area += M_PI * c.r * c.r;
  }
  std::cout << "Total area: " << area << "\n";
}

auto main(int argc, char** argv) -> int {
  std::vector<Circle> circles = {{1.0}, {2.0}};
  // Implicitly constructors `span` from `vector`.
  PrintTotalArea(circles);
  return 0;
}

Carbon:

// Carbon:
package Geometry api;
import Math;

class Circle {
  var r: f32;
}

fn PrintTotalArea(circles: Slice(Circle)) {
  var area: f32 = 0;
  for (c: Circle in circles) {
    area += Math.Pi * c.r * c.r;
  }
  Print("Total area: {0}", area);
}

fn Main() -> i32 {
  // A dynamically sized array, like `std::vector`.
  var circles: Array(Circle) = ({.r = 1.0}, {.r = 2.0});
  // Implicitly constructs `Slice` from `Array`.
  PrintTotalArea(circles);
  return 0;
}

2. wails: Goでデスクトップ アプリケーションを構築する

GitHub: https://github.com/wailsapp/wails

従来ではGoプログラムにWebインターフェイスを提供するために組み込みのWebサーバーを介して行われていました。
Wailsは別のアプローチを提供しており、Goとフロントエンドを合わせて1つのバイナリファイルに作成することができ、
プロジェクトの作成、コンパイル、バンドルも簡単に処理するようにできます。
wails

3. Prowler: AWSセキュリティツール

GitHub: https://github.com/prowler-cloud/prowler

Prowlerはオープンソースのセキュリティツールで、
AWSセキュリティのベストプラクティスの評価、監査、インシデント対応、継続的な監視、強化、forensics readinessを実行できます。
CIS、PCI-DSS、ISO27001、GDPR、HIPAA、FFIEC、SOC2、AWS FTR、ENS およびカスタムセキュリティフレームワークをカバーする240以上のコントロールが含まれています。

HTMLエクスポートも可能

4. comcast: 悪いネットワーク環境をシミュレートするツール

GitHub: https://github.com/tylertreat/comcast

開発者は良いネットワーク環境で開発することはほとんどですが、ネットワーク問題をシミュレートできないため、
本番環境にて予想外の問題が発生されるかもしれません。
Comcastは、レイテンシ、帯域幅制限、パケットのドロップ/並べ替え/破損などの一般的なネットワーク問題をシミュレートするために設計されたツールです。

5. croc: 簡単・安全に他のコンピュータにファイルを伝送するツール

GitHub: https://github.com/schollz/croc

crocは、2台のコンピュータでファイルやフォルダを簡単かつ安全に転送するためのツールです。

機能:
・任意の2台のコンピュータでデータ転送ができる(リレーを使用する)
・エンドツーエンドの暗号化(PAKEを使用)
・クロスプラットフォーム転送が簡単にできる(Windows, Linux, Mac)
・複数のファイル転送が可能
・中断された転送を再開することができる
・ローカルサーバやポートフォワーディングが不要
・ipv6ファーストでipv4フォールバックが可能
・torのようなプロキシを使用することができる

croc

プロフィール

祁鋭
祁鋭
Web広告事業→AWSクラウドエンジニア→フルスタックエンジニア
最近SaaSの開発、Rustとtauri絶賛勉強中です。