Gin とは?

Gin

Gin

NRIのOpenStandiaが提供するGin最新情報

Ginの保守サポートサービスの内容はこちら Ginの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Ginバージョンアップ情報

すべてを見る

更新日:2022-09-27

Ginの概要

Ginは、Go言語で書かれたWebフレームワークです。同じGo言語のWebフレームワークであるmartini*1に似たAPIを提供していますが、性能面ではhttprouterを使用することでmartiniの40倍高速にリクエストを処理するこが可能になっています。
コミュニティによる開発が活発に行われておりGithubのStarやContributorの数でもGo言語のWebフレームワークの中では最多です。公式のドキュメントや各APIを使った各種のWebサービスのサンプルコードも充実している上、公式の日本語のドキュメントが提供されている数少ないWebフレームワークの1つです。

*1 martiniは初期のGo言語Webフレームワークとしてよく知られていますが、開発が2014で止まっています。

TOPに戻る

Ginの主な特徴

高速なリクエスト処理

httprouter パッケージを使うことで高速なリクエスト処理を可能にしています。httpサーバの多くはwebサイトの構成をTree構造で保存します。そしてリクエストを受け取るとtree構造のデータから探索します。httprouter は圧縮されたRadix tree(基本木)を使用することで効率的にリクエストにマッチするデータを探索します。

多数のミドルウェアサポート

Ginが受け取ったリクエストは複数のミドルウェアを経由して処理されます。Ginは多くのミドルウェアが提供されていますので、モダンなWebサイトで必要とされる機能はほぼ網羅しており、各種ミドルウェアを組み合わせることで目的の機能を提供することが可能です。 また、目的のミドルウェアがない場合は自身でミドルウェアを作ることも可能です。

クラッシュフリー

GinはHTTPリクエスト処理中に発生したパニックをキャッチしてリカバーするためサーバプロセスがクラッシュすることがありません。サーバの停止が発生せず、常にサービスを提供することが可能です。発生したパニックはSentryなどのモニタリングツールに送信することもできます。

JSONバリデーション

標準でJSONのパーサーとバリデーション機能が提供されています。

ビルトインのレンダリング

標準で提供されているHTML、XML、JSONのレンダリングエンジンを簡単なAPIを通じて使用可能です。

エラーマネージメント

ミドルウェアによって発生するエラーをいろいろな方法で管理することが可能です。ログに出力したり、データベースに送ることや、ネットワーク経由で送信することもできます。

TOPに戻る

Ginの動作環境

Go 1.13以上のバージョンで動作します。

TOPに戻る

Ginのライセンス

Ginは、MITライセンスの元に提供されているオープンソースのソフトウェアです。ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

TOPに戻る

参考情報

公式サイト
https://gin-gonic.com/

公式リポジトリ
https://github.com/gin-gonic/gin

公式ドキュメント
https://gin-gonic.com/docs/
https://gin-gonic.com/ja/docs/ (日本語版)

サンプルコード
https://gin-gonic.com/docs/examples/
https://github.com/gin-gonic/gin/blob/master/README.md

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO