?非常に生産的なジュリアのウェブフレームワーク
貢献者によって❤︎で構築されています
Ginie.jlは、Genie Frameworkのバックボーンであり、最新のWebアプリケーションを開発するための合理化された効率的なワークフローを提供します。ジュリアの強み(高レベル、高性能、ダイナミック、JITコンパイル)に基づいており、リッチAPIと生産的なWeb開発のための強力なツールセットを公開します。
Genie Frameworkは、4つの主要なコンポーネントで構成されています。
Genieの詳細については、ドキュメントとアプリギャラリーをご覧ください。
何かについて助けが必要な場合は、私たちを不一致で見つけることができます。
ジュリアデータダッシュボードはGenieを搭載しています。アプリギャラリー
? Genie Router: Genieには本当に強力ですか? Router 。 Webリクエストを機能させ、リクエストの変数と実行環境を抽出して設定し、応答方法を呼び出します。機能は次のとおりです。
GET 、 POST 、 PUT 、 PATCH 、 DELETE 、 OPTIONS ) # Genie Hello World!
# As simple as Hello
using Genie
route ( " /hello " ) do
" Welcome to Genie! "
end
# Powerful high-performance HTML view templates
using Genie . Renderer . Html
route ( " /html " ) do
h1 ( " Welcome to Genie! " ) |> html
end
# JSON rendering built in
using Genie . Renderer . Json
route ( " /json " ) do
( :greeting => " Welcome to Genie! " ) |> json
end
# Start the app!
up ( 8888 )? WebSocket: Genieは、WebSocketsを介したクライアントサーバー通信のための強力なワークフローを提供します
julia> using Genie, Genie . Router
julia> channel ( " /foo/bar " ) do
# process request
end
[WS] /foo/bar => #1 | :foo_bar ?テンプレート: HTML 、 JSON 、 Markdown 、 JavaScriptビューの組み込みテンプレートサポート。
?認証:ウェブサイトの制限領域のデータベースバックされた認証を簡単に追加できます。
julia> using Pkg
julia> Pkg . add ( " GenieAuthentication " ) # adding authentication plugin
julia> using GenieAuthentication
julia> GenieAuthentication . install ( @__DIR__ )⏰タスク:タスクを使用すると、さまざまな操作を実行し、自動化のためにCronsジョブにフックすることができます
module S3DBTask
# ... hidden code
"""
Downloads S3 files to local disk.
Populate the database from CSV file
"""
function runtask ()
mktempdir () do directory
@info " Path of directory " directory
# download record file
download (RECORD_URL)
# unzip file
unzip (directory)
# dump to database
dbdump (directory)
end
end
# ... more hidden code
end $ bin/runtask S3DBTask?プラグインエコシステム: Geniouthentication、Genieutoreload、GenieAuthorisationなど、コミュニティによって構築されたプラグインを探索します
? ️ORMサポート:検索検索Postgres、mysql、sqlite、その他のアダプターをサポートするための完全なORMソリューションを探索します
function search (user_names, regions, startdate, enddate)
# ... hidden code
where_filters = SQLWhereEntity[
SQLWhereExpression ( " lower(user_name) IN ( $( repeat ( " ?, " , length (user_names))[ 1 : end - 1 ] ) ) " , user_names),
SQLWhereExpression ( " date >= ? AND date <= ? " , startdate, enddate)
]
SearchLight . find (UserRecord, where_filters, order = [ " record.date " ])
# ... more hidden code
endDatabase Migrations module CreateTableRecord
import SearchLight . Migrations : create_table, column, primary_key, add_index, drop_table
function up ()
create_table ( :record ) do
[
primary_key ()
column ( :user_uuid , :string , limit = 100 )
column ( :user_name , :string , limit = 100 )
column ( :status , :integer , limit = 4 )
column ( :region , :string , limit = 20 )
column ( :date_of_birth , :string , limit = 100 )
]
end
add_index ( :record , :user_uuid )
add_index ( :record , :user_name )
add_index ( :record , :region )
add_index ( :record , :date_of_birth )
end
function down ()
drop_table ( :record )
end
endModel Validations次のようなより魔神機能:
Files Uploads route ( " / " , method = POST) do
if infilespayload ( :yourfile )
write ( filespayload ( :yourfile ))
stat ( filename ( filespayload ( :yourfile )))
else
" No file uploaded "
end
endLogging | Caching | Cookies and Sessions | Docker, Heroku, JuliaHub, etc Integrations | Genie DeployGithub Flowを使用して貢献してください。ブランチを作成し、コミットを追加し、プルリクエストを開きます。
私たちのCODE OF CONDUCTの詳細と、私たちにプル要求を送信するプロセスについては、 CONTRIBUTINGをお読みください。
Awesome Genieロゴは、Alvaro Casanovaによって設計されました
readme構造テンプレート用のhoppscoth
Genieは、ジュリアコミュニティから親切に貢献した多数のパッケージを使用しています
このプロジェクトは、MITライセンスに基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。
このプロジェクトを楽しんでいるなら、主演を検討してください。 ginie.jl githubレポ。オープンソースプロジェクトに資金を提供するのに役立ちます。