Defiant est un cadre d'applications Web Node.js destiné à faciliter la construction d'une technologie perturbatrice.
Deviant est ainsi nommé parce que ses créateurs ont des opinions fortes sur la façon dont un système comme celui-ci doit être conçu, ainsi que son potentiel d'utilisation. (Il a également été appelé "provocateur" car il semblait que tant de cadres existants étaient essentiellement des clones les uns des autres, et nous voulions faire quelque chose de complètement différent.)
Defiant n'est pas un projet fini. Il s'agit cependant d'un travail actif en cours, et nous accueillerions votre contribution. Découvrez la feuille de route pour voir où vous pouvez intervenir!
Pour le moment, il n'y a qu'une poignée de personnes qui regardent Defiant. Si vous souhaitez nous parler, alors rejoignez-nous sur Slack ici! Votre implication est inestimable pour nous!
Utilisons le courrier électronique comme exemple. Si vous voulez votre propre adresse e-mail (par exemple, @ yourname.com), vous avez l'une des deux options: configurez votre propre serveur de messagerie ou avez quelqu'un (comme Google, Zoho, etc.) hébergez-le pour vous, probablement pour des frais mensuels / annuels. L'auto-gestion est extrêmement compliquée (configuration des pare-feu, un accès IMAP / POP3 / SMTP, un frontal basé sur le Web, des enregistrements DNS avec des enregistrements DKIM et SPF corrects, des certificats SSL, un filtrage de spam, un antivirus, une gestion des utilisateurs, etc.), et si vous vous trompez, les résultats peuvent être catastrophiques. Payer quelqu'un d'autre pour le gérer, cependant, peut coûter cher lorsque vous avez besoin de plusieurs comptes d'utilisateurs, permet peu de personnalisation, et vous êtes toujours à la merci de cette tierce partie (et cependant, il peut décider de vous espionner).
Qu'est-ce que cela a à voir avec Deviant? Le cadre de Defiant pourrait fournir toutes les pièces mentionnées ci-dessus, enveloppées dans un seul package simple (du point de vue de l'utilisateur final). Dans un sens, l'intention du cadre est de chorégraphier l'interaction de tous ces différents systèmes individuels et de les mettre dans un format que nous «simples mortels» pouvons mettre en œuvre en toute sécurité. Defiant veut que vous puissiez posséder et gérer ces technologies (et, par procuration, vos propres données) à partir de la confidentialité de nos propres serveurs.
Quel type de systèmes pourrait être construit en utilisant Defiant?
Ces systèmes n'existent pas encore, mais ils montrent plutôt l'intention derrière Deviant. Nous voulons avoir un cadre flexible sécurisé, facile à utiliser à partir de lequel construire (mélange et match, vraiment) les systèmes susmentionnés. Nous voulons reprendre Internet des grandes entreprises et remettre des technologies puissantes entre nous des gens normaux.
Au fait, nous avons besoin de votre aide pour le faire. Veuillez envisager de nous aider à développer un provocation et de reprendre Internet. Soyez provocant!
Defiant croit fermement que vous, en tant que développeur, devriez être en mesure d'utiliser ce cadre et d'ajouter ou de modifier sa fonctionnalité sans pirater les fichiers de base. De même, si vous utilisez un plugin tiers pour ce cadre et souhaitez ajouter ou modifier la fonctionnalité du plugin, vous devriez pouvoir le faire sans avoir à pirater le plugin lui-même. Si l'architecture ne prend pas en charge cette flexibilité, cela doit être interprété comme un bogue et doit être signalé comme tel. En bref, tout devrait être remplacé.
Defiant n'adhère pas à un cadre MVC strict, car cela n'est pas suffisamment flexible pour ce que nous avons en tête.
Chaque cadre a des opinions sur quelque chose. Certains se soucient de l'endroit où vos fichiers sont placés, et certains souhaitent appliquer des paradigmes spécifiques. Les opinions de Deviant portent sur la façon dont les parties disparates devraient interagir. La langue JavaScript et la plate-forme Node.js fournissent un ensemble d'outils unique et puissant pour résoudre de nombreux problèmes et cas d'utilisation différents sous une architecture unifiée.
Nous pensons que l'open source ne devrait être que cela: complètement ouvert. Nous ne sommes généralement pas d'accord avec certaines des dispositions du GPL qui impose les exigences à d'autres projets, tout comme ce projet sous licence du MIT.
Dans un monde idéal, le droit d'auteur serait une chose que nous pourrions ignorer pour le plus grand bien. Malheureusement, les avocats, les politiciens et la cupidité des entreprises ont compliqué les choses, nous devons donc opérer sous le fardeau qu'ils ont créé. En tant que tel, le titulaire du droit d'auteur pour le projet Defiant est Corey Pennycuff. Tout contributeur au projet, en raison de sa contribution volontaire, accepte par la présente de céder le droit d'auteur de la contribution à Corey Pennycuff et affirme qu'ils ont le pouvoir légal de le faire. Une exception à cette disposition est autorisée en cas d'inclusion des bibliothèques tierces, qui doivent exister entièrement dans son propre sous-répertoire et contenir des informations appropriées en matière de propriété du droit d'auteur.
Le manifeste provocant explique la philosophie du projet de défi. Ils sont:
Lisez le (court) manifeste lui-même afin de comprendre comment nous appliquons ces idées.
Jusqu'à présent, je n'ai testé cela que sur Linux (en particulier, Debian) et le sous-système Windows pour Linus (WSL) dans Windows 10.
Au minimum, vous devez installer les packages python et sqlite3 . Vous pouvez également avoir besoin build-essential .
apt-get install python sqlite3Ceux-ci sont nécessaires pour l'installation de modules dont dépend de la provocation. Ce n'est pas une dépendance directe de la base de code.
Cela prendra un certain temps ...
npm install Par défaut, Deviant essaie de stocker des informations dans le répertoire /var/defiant . Cela sera configurable à l'avenir. Pour l'instant, créez le répertoire et assurez-vous d'avoir des autorisations d'écriture au répertoire.
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 commence à fonctionner sur le port 8888 (ce sera configurable à l'avenir), vous devriez donc pouvoir aller sur http://localhost:8888 pour voir le site fonctionner. Regardez la sortie de la console pour le nom d'utilisateur et le mot de passe de l'administrateur.
Defiant ne fait pas grand-chose pour le moment et n'est pas du tout prêt pour un travail sérieux. Pourquoi? Parce qu'il est toujours en cours de construction, bien sûr! Certaines parties n'existent que dans l'esprit et les conversations des développeurs. Si vous voulez vous aider, envoyez-nous un message et découvrez quelle est la feuille de route actuelle.
Regardez la feuille de route pour voir ce qui fonctionne et ce qui se passe sur notre radar immédiat. Mieux encore, contactez-moi et découvrez comment vous pouvez intervenir et aider dans le développement!
Nous répétons: ce code n'est pas encore destiné à aucun travail de production.
La documentation peut être trouvée ici.
Rien dans l'API n'est fixé dans la pierre, et il y a très peu de documentation officielle (bien que nous essayions de commenter le code de manière responsable). De plus, il s'agit du premier projet, et il n'est même pas complet. Lorsque vous regardez le code, n'oubliez pas ceci: il y a des hacks et des todos dispersés dans le système. Parfois, le piratage est juste pour que quelque chose fonctionne pour qu'une autre partie semi-liée puisse être étoffée, et il y a une intention de revoir le code plus tard. Parfois, le TODO est juste un talon représentant une idée, ou indiquant où quelque chose devra s'interfacer avec le système plus tard. Parfois, la fonctionnalité n'existe que dans l'esprit des auteurs. ESP serait utile ici ...
Par-dessus tout, nous vous encourageons à renverser les tendances et la sagesse des masses dans l'espoir d'une expérience de codage fraîche et gratuite. Si cela échoue, vous pouvez également être grincheux. Quoi que vous soyez, cependant ... soyez provocant!