Defiant是一個Node.js Web應用程序框架,旨在促進構建破壞性技術。
Defiant之所以如此命名,是因為其創建者對應該如何設計這樣的系統以及其使用潛力有強烈的看法。 (這也被稱為“反抗”,因為它似乎許多現有的框架基本上都是彼此的克隆,我們想做些完全不同的事情。)
Defiant不是完成的項目。但是,這是一項積極的工作,我們歡迎您的意見。查看路線圖,以查看您可以跳入哪裡!
目前,只有少數人在看Defiant。但是,如果您想與我們交談,那就在這裡加入我們!您的參與對我們來說是寶貴的!
讓我們以電子郵件為例。如果您想要自己的電子郵件地址(例如, @yourname.com),則有兩個選擇之一:要么設置自己的電子郵件服務器,要么有某人(例如Google,Zoho等)為您託管它,可能是每月/年費。自我管理非常複雜(設置防火牆,IMAP/POP3/SMTP訪問,基於Web的前端,具有正確的DKIM和SPF記錄,SSL證書,SSL證書,垃圾郵件過濾,防病毒,用戶管理等的DNS記錄),如果您弄錯了,則結果可能是災難性的。但是,當您需要多個用戶帳戶時,付錢給其他人管理它可能會變得昂貴,幾乎沒有自定義,並且您始終受到第三方的擺佈(但是他們可能決定監視您)。
這與Defiant有什麼關係? Defiant的框架可以提供上述所有部分,並包裹在一個簡單的軟件包中(從最終用戶的角度來看)。從某種意義上說,框架的目的是編舞所有這些不同的單個系統的相互作用,並將它們置於我們“僅僅凡人”可以安全實現的格式中。 Defiant希望您能夠從我們自己的服務器的隱私中擁有和管理這些技術(並通過代理您自己的數據)。
使用Defiant可以構建哪種系統?
這些系統尚不存在,而是表明了反抗背後的意圖。我們希望擁有一個安全,易於使用,靈活的框架,在上面提到的系統中,它可以通過該框架來構建(混合和匹配)。我們希望將互聯網從大公司中奪回,並將強大的技術放回我們普通人的手中。
順便說一句,我們需要您的幫助才能做到。請考慮幫助我們發展反抗,並撤回互聯網。挑釁!
Defiant堅信,作為開發人員,您應該能夠使用此框架,並在沒有黑客核心文件的情況下添加或修改其功能。同樣,如果您在此框架上使用第三方插件,並希望添加或修改插件的功能,那麼您應該能夠這樣做,而無需黑客插件本身。如果體系結構不支持此靈活性,則應將其解釋為錯誤,應按照此類方式進行報告。簡而言之,一切都應該太過填充了。
Defiant不遵守嚴格的MVC框架,因為這對我們的想法還不夠靈活。
每個框架都對某件事有意見。有些人關心放置文件的位置,有些則想執行特定的範例。 Defiant的意見是關於不同部分應如何相互作用的意見。 JavaScript語言和Node.js平台提供了一套獨特而強大的工具,可在統一體系結構下解決許多不同的問題和用例。
我們認為開源應該就是這樣:完全開放。我們通常不同意GPL對其他項目的要求的某些規定,因此已根據MIT許可獲得了該項目的許可。
在理想的世界中,版權將是我們為更大的利益而忽略的事情。不幸的是,律師,政客和公司貪婪的事情很複雜,因此我們必須在他們創造的負擔下運作。因此,Defiant項目的版權持有人是Corey PennyCuff。任何對該項目的貢獻者都會憑藉其故意的貢獻,特此同意將貢獻的版權分配給科里·彭尼卡夫(Corey Pennycuff),並確認他們有法律權力可以這樣做。在包含第三方圖書館的情況下,允許此規定的例外,該圖書館必須完全存在於其自己的子目錄中,並包含適當的版權所有權信息。
反抗宣言解釋了反抗項目的哲學。他們是:
閱讀(簡短的)宣言本身,以了解我們如何應用這些想法。
到目前為止,我僅在Windows 10中的Linus(特別是Debian)和Windows子系統上對此進行了測試。
最低限度,您需要安裝python和sqlite3軟件包。您可能還需要build-essential 。
apt-get install python sqlite3這些是安裝反抗依賴的模塊所必需的。這不是代碼庫的直接依賴性。
這需要一段時間...
npm install默認情況下,Defiant試圖將信息存儲在/var/defiant目錄中。這將來可以配置。目前,創建目錄,並確保您對目錄的寫入權限。
const Defiant = require ( 'defiant' ) ;
new Defiant . Engine ( )
// Add Plugins.
// The Example Plugin is included with Defiant, and, of course, should not
// be included in production code.
. addPlugin ( Defiant . Plugin . Example )
// Explicitly set a directory where Defiant should look for the settings
// files. If no files exist, then appropriate defaults will be generated.
// This directory should be separate from your application code, and
// preferably under version control.
. defineBootstrapDirectory ( '/var/defiant/settings' )
// Initialize the Engine and its components.
// init() is the last call that should be made, as Defiant will now begin
// listening for connections.
. init ( ) ; Defiant開始在端口8888上運行(將來可以配置),因此您應該可以訪問http://localhost:8888以查看該站點運行。查看管理員用戶名和密碼的控制台輸出。
Defiant目前還沒有做太多事情,也沒有準備好進行認真的工作。為什麼?因為它仍在建造!它的一部分僅存在於開發人員的思想和對話中。如果您想提供幫助,請向我們發送消息並找出當前路線圖的內容。
查看路線圖,以查看有效的作用以及我們直接雷達的內容。更好的是,與我聯繫,找出如何跳入並為開發提供幫助!
我們重複:此代碼尚未用於任何生產工作。
文檔可以在這裡找到。
API中的任何內容都沒有石頭,而且幾乎沒有官方文檔(儘管我們確實試圖負責任地評論該代碼)。此外,這是第一稿,甚至還沒有完成。當您查看代碼時,請記住這一點:整個系統中都有黑客和戒酒。有時,駭客只是為了使某些東西有效,以便可以將其他一些與半相關的部分充實,並且有意以稍後重新審視代碼。有時,TODO只是表示一個想法的存根,或者指示以後需要與系統接口的地方。有時,該功能僅存在於作者的心中。 ESP在這裡會有所幫助...
最重要的是,我們鼓勵您束縛群眾的趨勢和智慧,以期獲得新鮮和免費的編碼體驗。如果失敗了,您也可能會變得胡思亂想。不管你是什麼,...挑釁!