؟ إطار عمل جوليا على شبكة الإنترنت للغاية
بنيت مع ❤︎ من قبل المساهمين
Genie.jl هو العمود الفقري لإطار Genie ، الذي يوفر سير عمل مبسط وفعال لتطوير تطبيقات الويب الحديثة. إنه يعتمد على نقاط القوة في جوليا (رفيعة المستوى ، عالية الأداء ، ديناميكية ، JIT المترجمة) ، وفضح واجهة برمجة تطبيقات غنية وجملة أدوات قوية لتطوير الويب المنتج.
يتكون إطار العمل من أربعة مكونات رئيسية:
لمعرفة المزيد عن Genie ، تفضل بزيارة الوثائق ، ومعرض التطبيق.
إذا كنت بحاجة إلى مساعدة في أي شيء ، فيمكنك أن تجدنا على خلاف.
Julia Data Dathboard مدعوم من Genie. معرض التطبيق
؟ جني راوتر: جني لديه قوي حقا؟ Router . مطابقة طلبات الويب مع الوظائف ، واستخراج وإعداد متغيرات الطلب وبيئة التنفيذ ، واستدعاء طرق الاستجابة. تشمل الميزات:
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 ؟ Templating: دعم القوالب المدمجة لـ HTML ، JSON ، Markdown ، JavaScript Views.
؟ المصادقة: من السهل إضافة المصادقة المدعومة من قاعدة البيانات للمنطقة المقيدة لموقع الويب.
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؟ النظام الإيكولوجي للمكونات الإضافية: استكشاف المكونات الإضافية التي صممها المجتمع مثل GenieAuthentication و GenieAuToreLoad و GenieAuthorisation والمزيد
️ orm دعم: استكشاف Searchlight حل ORM كامل لجني ، دعم postgres ، mysql ، sqlite وغيرها من المحولات
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المزيد من ميزات Genie مثل:
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 Deployيرجى المساهمة باستخدام تدفق جيثب. قم بإنشاء فرع ، وإضافة ارتباطات ، وفتح طلب سحب.
يرجى قراءة CONTRIBUTING للحصول على تفاصيل حول CODE OF CONDUCT ، وعملية تقديم طلبات السحب إلينا.
تم تصميم شعار Genie الرائع بواسطة Alvaro Casanova
hoppscoth لقالب هيكل ReadMe
يستخدم Genie العديد من الحزم التي ساهمت بها مجتمع جوليا
تم ترخيص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف LICENSE للحصول على التفاصيل.
إذا كنت تستمتع بهذا المشروع ، فيرجى التفكير في بطولة؟ genie.jl github repo. سوف يساعدنا في تمويل مشاريعنا مفتوحة المصدر.