? Kerangka kerja web Julia yang sangat produktif
Dibangun dengan ❤︎ oleh kontributor
Genie.jl adalah tulang punggung kerangka kerja Genie, yang menyediakan alur kerja yang efisien dan efisien untuk mengembangkan aplikasi web modern. Ini dibangun di atas kekuatan Julia (tingkat tinggi, berkinerja tinggi, dinamis, dikompilasi JIT), mengekspos API yang kaya dan toolset yang kuat untuk pengembangan web yang produktif.
Genie Framework terdiri dari empat komponen utama:
Untuk mempelajari lebih lanjut tentang Genie, kunjungi dokumentasi, dan galeri aplikasi.
Jika Anda membutuhkan bantuan dengan apa pun, Anda dapat menemukan kami di perselisihan.
Dasbor data Julia ditenagai oleh Genie. Galeri aplikasi
? Genie Router: Genie memiliki sangat kuat? Router . Pencocokan permintaan web untuk fungsi, mengekstraksi dan mengatur variabel permintaan dan lingkungan eksekusi, dan memohon metode respons. Fitur meliputi:
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 menyediakan alur kerja yang kuat untuk komunikasi klien-server melalui websockets
julia> using Genie, Genie . Router
julia> channel ( " /foo/bar " ) do
# process request
end
[WS] /foo/bar => #1 | :foo_bar ? Templating: Dukungan templat built-in untuk tampilan HTML , JSON , Markdown , JavaScript .
? Otentikasi: Mudah ditambahkan otentikasi yang didukung database untuk area terbatas situs web.
julia> using Pkg
julia> Pkg . add ( " GenieAuthentication " ) # adding authentication plugin
julia> using GenieAuthentication
julia> GenieAuthentication . install ( @__DIR__ )⏰ Tugas: Tugas memungkinkan Anda melakukan berbagai operasi dan menghubungkannya dengan pekerjaan crons untuk otomatisasi
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? Ekosistem Plugin: Jelajahi plugin yang dibangun oleh komunitas seperti genieAuthentication, genieautoreload, genieauthorisation, dan banyak lagi
? ️ Dukungan ORM: Jelajahi sari sari orm lengkap untuk jin, pendukung postgres, mysql, sqlite dan adaptor lainnya
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 ValidationsLebih banyak fitur jin seperti:
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 DeployHarap berkontribusi menggunakan GitHub Flow. Buat cabang, tambahkan komitmen, dan buka permintaan tarik.
Harap baca CONTRIBUTING untuk perincian tentang CODE OF CONDUCT kami, dan proses untuk mengirimkan permintaan tarik kepada kami.
Logo Genie yang luar biasa dirancang oleh Alvaro Casanova
Hoppscoth untuk template struktur readme
Genie menggunakan banyak paket yang telah disumbangkan dengan baik oleh komunitas Julia
Proyek ini dilisensikan di bawah lisensi MIT - lihat file LICENSE untuk detailnya.
Jika Anda menikmati proyek ini, pertimbangkan untuk dibintangi? Genie.jl Github Repo. Ini akan membantu kami mendanai proyek open source kami.