C'est juste ça. Un serveur de clone pastebin minimaliste sans trumes à Golang. Il ne prend en charge que deux opérations:
De quoi d'autre avez-vous besoin?
binnit est un exécutable unique sans dépendances . Vous n'avez pas besoin d'un serveur Web. Vous n'avez pas besoin d'un serveur SQL. Vous n'avez pas besoin de bibliothèque externe.
binnit sert des pâtes dans le format:
http://<server_name>/abcdef1234567890
et les stocke dans un dossier sur le serveur, un fichier par pâte, dont le nom de fichier est identique à l'ID de pâte. L'ID unique d'une pâte est obtenue à partir du SHA256 de la concaténation du titre, du temps et du contenu. Le rendu est minimal, exprès, mais basé sur un modèle personnalisable.
binnit est actuellement configuré via un fichier de configuration de KEY = Value Simple, dont le nom peut être spécifié sur la ligne de commande via l'option -c <config_file> . Si aucun fichier de configuration n'est spécifié, binnit recherche ./binnit.cfg . Les options configurables sont:
Comme pour les autres services de type Pastebin, vous pouvez envoyer une pâte à binnit à l'aide curl . Par exemple, si votre serveur binnit s'exécute sur http://servername.net , vous pouvez coller un fichier là-bas en utilisant:
curl -F 'paste=<myfile' http://servername.net
et obtenir sur la sortie de l'ID associé à la pâte nouvellement créée. De la même manière
mylongcommand | curl -F 'paste=<-' http://servername.net
Collera la sortie de mylongcommand sur http://servername.net , et affichez sur la sortie de l'ID de la nouvelle pâte.
Il y a des centaines de serveurs semblables à la pâte dans la nature. Mais la majorité écrasante d'entre eux est un logiciel trop profond , en fonction de nombreuses bibliothèques / cadres / outils, offrant beaucoup de fonctionnalités inutiles et impliquant une complexité inutile.
Un serveur de pâte doit être capable de faire deux choses, 1) créer une nouvelle pâte et retourner son identifiant, et 2) récupérer une pâte existante en utilisant son identifiant. binnit fait juste et seulement ces deux choses, de la manière la plus simple possible, sans aucune dépendance externe. Si vous avez besoin de plus que cela, binnit n'est pas pour vous. Mais avez-vous vraiment besoin de plus?
Il semble que la perfection ne soit pas atteinte lorsqu'il n'y a plus rien à ajouter, mais quand il n'y a plus rien à éliminer (Antoine de Saint exupéry)
binnit est destiné à être vraiment minime. Il se compose d'environ 500 lignes de code source de Golang au total, notamment:
Si vous voulez dépasser encore plus binnit , vous pourriez envisager de retirer:
Vous ne pouvez pas supprimer les instructions de licence sur chaque fichier source.
binnit est Copyright (2017) par Vincenzo "Katolaz" Nicosia.
binnit est un logiciel libre. Vous pouvez l'utiliser, le modifier et le redistribuer en vertu des termes de la licence publique générale GNU Affero, de la version 3 de la licence ou, à votre option, n'importe quelle version ultérieure. Veuillez consulter Licence.MD pour plus de détails.