La bibliothèque SFTP TGPuttyLib est une conversion en bibliothèque du programme psftp de la célèbre suite PuTTY de Simon Tatham.

Elle permet aux développeurs de transférer des fichiers aux vitesses de transfert les plus élevées possibles. Certaines tailles de tampons ont été augmentées pour y parvenir.

TGPuttyLib est basée sur PuTTY version 0.83. Des classes prêtes à l’emploi sont actuellement disponibles pour C++, Delphi et Free Pascal.

La bibliothèque est actuellement disponible pour Windows, macOS, Linux et FreeBSD.

Voir ce projet sur GitHub : github.com/superflexible/TGPuttyLib

Ou téléchargez-le ici :
Télécharger TGPuttyLib pour Windows et Linux, avec le code source et des démos (Build 30 : 32 et 64 bits)

Quelques points forts :

  • Sous Delphi, pensez à utiliser la classe TTGPuttySFTP dans tgputtysftp.pas plutôt que le composant TTGPuttySFTPClient dans tgputtysftpclient.pas. Voir notre recommandation sur GitHub pour plus de détails.
  • La DLL PuTTY est 100 % thread-safe et peut gérer un grand nombre de connexions et de transferts simultanés. Chaque connexion, et chaque thread, doit disposer de sa propre instance TTGPuttySFTP.
  • Les modifications du code source ont été effectuées avec soin et de manière minimaliste afin de garantir une adoption facile des changements dans les futures versions de PuTTY.
  • Vous pouvez choisir entre la classe TTGPuttySFTP et le composant TTGPuttySFTPClient. Si vous choisissez la classe, elle doit être créée entièrement en code source. La classe utilise des chaînes 8 bits, tandis que le composant est Unicode (en supposant que le serveur SFTP attend un encodage UTF-8). Les callbacks (événements) seront appelés dans le même thread où une méthode TTGPuttySFTP a été appelée — pas dans le thread principal.
  • Les fonctionnalités de shell SSH et SCP seront probablement ajoutées dans une version future.
  • Plusieurs démos sont incluses, en particulier un client SFTP entièrement fonctionnel avec interface graphique (Delphi uniquement), ainsi que quelques outils en ligne de commande écrits en C++, Delphi et Free Pascal.
  • Vous pouvez transférer des fichiers à partir de noms de fichiers ou de flux. Vous pouvez aussi ouvrir un fichier directement et obtenir un handle de fichier, puis implémenter votre propre boucle d’upload en utilisant les fonctions xfer_*. Ainsi, vous avez un accès aléatoire au fichier, mais les fonctions xfer_* doivent être utilisées d’une manière spécifique. Il n’existe actuellement aucun exemple en Pascal pour cela, vous devez donc consulter la fonction sftp_put_file dans psftp.c.
  • La prise en charge des proxys est disponible depuis la build 8.
  • J’ai compilé le code C avec les assertions activées, mais elles sont implémentées comme des exceptions Delphi via un #define et une fonction de rappel. J’ai l’intention de laisser les assertions et les exceptions activées dans toutes les versions finales.
  • Contributions, demandes et autres types de retours sont les bienvenus, veuillez envoyer à mon nom @ gmail . com (mon nom est tobiasgiesen)
  • La licence de TGPuttyLib est la même que celle de PuTTY, elle peut donc être utilisée dans des projets open source et commerciaux.

Vous trouverez plus d’informations sur PuTTY sur la page d’accueil de PuTTY.

Les modifications de la bibliothèque dynamique et le code Pascal sont protégés par le droit d’auteur 2019-2024 Tobias Giesen.
Ils sont distribués sous la même licence que le PuTTY d’origine, voir ci-dessous.

Licence PuTTY
PuTTY est protégé par le droit d’auteur 1997-2024 Simon Tatham.

Certaines parties sont protégées par le droit d’auteur de Robert de Bath, Joris van Rantwijk, Delian Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus Kuhn, Colin Watson, Christopher Staite, Lorenz Diener, Christian Brabandt, Jeff Smith, Pavel Kryukov, Maxim Kuznetsov, Svyatoslav Kuzmich, Nico Williams, Viktor Dukhovni et CORE SDI S.A.

L’autorisation est accordée gratuitement à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Software »), d’utiliser le Software sans restriction, y compris, sans limitation, les droits d’utiliser, copier, modifier, fusionner, publier, distribuer, accorder des sous-licences et/ou vendre des copies du Software, et d’autoriser les personnes à qui le Software est fourni à le faire, sous réserve des conditions suivantes :

L’avis de copyright ci-dessus et le présent avis d’autorisation doivent être inclus dans toutes les copies ou parties substantielles du Software.

LE SOFTWARE EST FOURNI « TEL QUEL », SANS GARANTIE D’AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, SANS S’Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D’ADAPTATION À UN USAGE PARTICULIER ET D’ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES TITULAIRES DES DROITS D’AUTEUR NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QU’ELLE SOIT CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DU SOFTWARE, DE SON UTILISATION OU D’AUTRES OPÉRATIONS LIÉES AU SOFTWARE.