Defiant es un marco de aplicaciones web nodo.js destinado a facilitar la construcción de tecnología disruptiva.
Defiant se llama así porque sus creadores tienen fuertes opiniones sobre cómo se debe diseñar un sistema como este, así como su potencial de uso. (También se llamaba "desafiante" porque parecía que muchos de los marcos existentes eran básicamente clones el uno del otro, y queríamos hacer algo completamente diferente).
Defiant no es un proyecto terminado. Sin embargo, es un trabajo activo en progreso, y daríamos la bienvenida a su opinión. ¡Mira la hoja de ruta para ver dónde puedes saltar!
Por el momento, solo hay un puñado de personas que miran a Defiant. Sin embargo, si desea hablar con nosotros, ¡únase a nosotros en Slack aquí! ¡Su participación es invaluable para nosotros!
Usemos el correo electrónico como ejemplo. Si desea su propia dirección de correo electrónico (por ejemplo, @yourname.com), tiene una de las dos opciones: configure su propio servidor de correo electrónico o tenga a alguien (como Google, Zoho, etc.) alojarlo, probablemente por una tarifa mensual/anual. La autogestión es extremadamente complicada (configurar firewalls, acceso IMAP/POP3/SMTP, un front-end basado en la web, registros DNS con registros correctos de DKIM y SPF, certificados SSL, filtrado de spam, antivirus, gestión de usuarios, etc.), y si se equivoca, los resultados pueden ser catastróficos. Sin embargo, pagar a otra persona para que lo administre puede ser costoso cuando necesita múltiples cuentas de usuario, permite poca personalización, y siempre está a merced de ese tercero (y sin embargo, pueden decidir espiarlo).
¿Qué tiene esto que ver con Defiant? El marco de Defiant podría proporcionar todas las partes mencionadas anteriormente, envueltas en un solo paquete simple (desde la perspectiva del usuario final). En cierto sentido, la intención del marco es coreografiar la interacción de todos estos sistemas individuales diferentes, y ponerlos en un formato que los "simples mortales" podamos implementar de manera segura. Defiant quiere que pueda poseer y administrar estas tecnologías (y, por proxy, sus propios datos) de la privacidad de nuestros propios servidores.
¿Qué tipo de sistemas podrían construirse usando Defiant?
Estos sistemas aún no existen, sino que muestran la intención detrás de Defiant. Queremos tener un marco seguro, fácil de usar y flexible para construir (mezclar y combinar, realmente) los sistemas mencionados anteriormente. Queremos recuperar Internet de las grandes corporaciones y volver a poner en manos de las manos de las personas normales.
Por cierto, necesitamos su ayuda para hacerlo. Considere ayudarnos a desarrollar Defiant y recuperar Internet. ¡Sea desafiante!
Defiant cree firmemente que usted, como desarrollador, debe poder usar este marco y agregar o modificar su funcionalidad sin que piratear los archivos principales. Del mismo modo, si está utilizando un complemento de terceros para este marco y desea agregar o modificar la funcionalidad del complemento, entonces debería poder hacerlo sin tener que piratear el complemento en sí. Si la arquitectura no admite esta flexibilidad, entonces esto debe interpretarse como un error y debe informarse como tal. En resumen, todo debe ser anulable.
Defiant no se adhiere a un marco MVC estricto, porque eso no es lo suficientemente flexible para lo que tenemos en mente.
Cada marco tiene opiniones sobre algo. A algunos se preocupan por dónde se colocan sus archivos, y algunos quieren hacer cumplir paradigmas específicos. Las opiniones de Defiant son sobre cómo deberían interactuar las partes dispares. El lenguaje JavaScript y la plataforma Node.js proporcionan un conjunto único y poderoso de herramientas para abordar muchos problemas y casos de uso diferentes bajo una arquitectura unificada.
Creemos que el código abierto debería ser solo eso: completamente abierto. En general, no estamos de acuerdo con algunas de las disposiciones de la GPL que impone demandas a otros proyectos, por lo que han licenciado este proyecto bajo la licencia MIT.
En un mundo ideal, los derechos de autor serían algo que podríamos ignorar por el bien mayor. Desafortunadamente, los abogados, los políticos y la codicia corporativa tienen cosas complicadas, por lo que debemos operar bajo la carga que han creado. Como tal, el titular de los derechos de autor del proyecto Defiant es Corey Pennycuff. Cualquier contribuyente al proyecto, en virtud de su contribución intencional, acuerda asignar derechos de autor de la contribución a Corey Pennycuff y afirma que tienen la autoridad legal para hacerlo. La excepción a esta disposición se permite en el caso de la inclusión de bibliotecas de terceros, que deben existir totalmente dentro de su propio subdirectorio y contienen información adecuada de propiedad de derechos de autor.
El Manifiesto Defiant explica la filosofía del Proyecto Defiant. Ellos son:
Lea el (corto) manifiesto en sí para comprender cómo aplicamos estas ideas.
Hasta ahora solo he probado esto en Linux (específicamente, Debian) y el subsistema de Windows para Linus (WSL) en Windows 10.
Como mínimo, debe instalar los paquetes python y sqlite3 . También es posible que necesite build-essential .
apt-get install python sqlite3Estos son necesarios para la instalación de módulos de los que depende Defiant. No es una dependencia directa de la base de código.
Esto llevará un tiempo ...
npm install Por defecto, Defiant intenta almacenar información en el directorio /var/defiant . Esto será configurable en el futuro. Por ahora, cree el directorio y asegúrese de tener permisos de escritura al directorio.
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 comienza a funcionar en el puerto 8888 (esto será configurable en el futuro), por lo que debería poder ir a http://localhost:8888 para ver el sitio en ejecución. Mire la salida de la consola para el nombre de usuario y la contraseña del administrador.
Defiant no hace mucho en este momento, y no está listo para un trabajo serio. ¿Por qué? ¡Porque todavía se está construyendo, por supuesto! Partes solo existen en las mentes y conversaciones de los desarrolladores. Si desea ayudar, envíenos un mensaje y descubra cuál es la hoja de ruta actual.
Mire la hoja de ruta para ver qué funciona y qué está en nuestro radar inmediato. ¡Mejor aún, contácteme y descubra cómo puede saltar y ayudar en el desarrollo!
Repetimos: este código aún no está destinado a ningún trabajo de producción.
La documentación se puede encontrar aquí.
Nada en la API se establece en piedra, y hay muy poca documentación oficial (aunque intentamos comentar el código de manera responsable). Además, este es el primer borrador, y ni siquiera está completo. Cuando mira el código, recuerde esto: hay hacks y TODOS dispersos por todo el sistema. A veces, el truco es solo hacer que algo funcione para que alguna otra parte semi relacionado pueda desarrollarse, y existe la intención de volver a visitar el código más adelante. A veces, el TODO es solo un trozo que representa una idea o indica dónde necesitará algo para interactuar con el sistema más adelante. A veces, la característica solo existe en las mentes de los autores. ESP sería útil aquí ...
Sobre todo, lo alentamos a que reduzca las tendencias y la sabiduría de las masas para la esperanza de una experiencia de codificación fresca y gratuita. Si eso falla, también puedes estar de mal humor. Sin embargo, lo que sea que seas ... ¡Sé desafiante!