MinimalFTP

A lightweight, simple FTP server. Pure Java, no libraries.

Лицензия

Лицензия

Категории

Категории

GUI Взаимодействие с пользователем
Группа

Группа

com.guichaguri
Идентификатор

Идентификатор

minimalftp
Последняя версия

Последняя версия

1.0.6
Дата

Дата

Тип

Тип

jar
Описание

Описание

MinimalFTP
A lightweight, simple FTP server. Pure Java, no libraries.
Ссылка на сайт

Ссылка на сайт

https://github.com/Guichaguri/MinimalFTP
Система контроля версий

Система контроля версий

https://github.com/Guichaguri/MinimalFTP/tree/master

Скачать minimalftp

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.guichaguri/minimalftp/ -->
<dependency>
    <groupId>com.guichaguri</groupId>
    <artifactId>minimalftp</artifactId>
    <version>1.0.6</version>
</dependency>
// https://jarcasting.com/artifacts/com.guichaguri/minimalftp/
implementation 'com.guichaguri:minimalftp:1.0.6'
// https://jarcasting.com/artifacts/com.guichaguri/minimalftp/
implementation ("com.guichaguri:minimalftp:1.0.6")
'com.guichaguri:minimalftp:jar:1.0.6'
<dependency org="com.guichaguri" name="minimalftp" rev="1.0.6">
  <artifact name="minimalftp" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.guichaguri', module='minimalftp', version='1.0.6')
)
libraryDependencies += "com.guichaguri" % "minimalftp" % "1.0.6"
[com.guichaguri/minimalftp "1.0.6"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

Данный проект не имеет модулей.

MinimalFTP Build Status

A lightweight, simple FTP server. Pure Java, no libraries.

Features

Although it's named "minimal", it supports a bunch of features:

  • 100% Java, no libraries
  • Lightweight
  • Supports 57 FTP commands
  • TLS/SSL support
  • Custom File System support
  • Custom User Authentication support
  • Custom Commands support
  • Support to obsolete commands (some FTP clients might still use them)

Specification Support

The required minimum implementation is already done, however, there are still commands that can be implemented.

  • RFC 959 - File Transfer Protocol (33/33)
  • RFC 697 - CWD Command of FTP (1/1) (Obsolete)
  • RFC 737 - FTP Extension: XSEN (0/3) (Obsolete)
  • RFC 743 - FTP extension: XRSQ/XRCP (0/4) (Obsolete)
  • RFC 775 - Directory oriented FTP commands (5/5) (Obsolete)
  • RFC 1123 - Requirements for Internet Hosts
  • RFC 1639 - FTP Operation Over Big Address Records (2/2) (Obsolete)
  • RFC 2228 - FTP Security Extensions (3/8)
  • RFC 2389 - Feature negotiation mechanism for the File Transfer Protocol (2/2)
  • RFC 2428 - FTP Extensions for IPv6 and NATs (2/2)
  • RFC 2640 - Internationalization of the File Transfer Protocol (0/1)
  • RFC 2773 - Encryption using KEA and SKIPJACK (0/1)
  • RFC 3659 - Extensions to FTP (4/4)
  • RFC 4217 - Securing FTP with TLS
  • RFC 5797 - FTP Command and Extension Registry
  • RFC 7151 - File Transfer Protocol HOST Command for Virtual Hosts (1/1)
  • draft-twine-ftpmd5-00 - The "MD5" and "MMD5" FTP Command Extensions (2/2) (Obsolete)
  • draft-somers-ftp-mfxx-04 - The "MFMT", "MFCT", and "MFF" Command Extensions for FTP (1/3)
  • draft-bryan-ftpext-hash-02 - File Transfer Protocol HASH Command for Cryptographic Hashes (1/1)
  • draft-bryan-ftp-range-08 - File Transfer Protocol RANG Command for Octet Ranges (0/1)

Usage

Dependency

MinimalFTP is published on JCenter and Maven Central

Maven

<dependency>
  <groupId>com.guichaguri</groupId>
  <artifactId>minimalftp</artifactId>
  <version>1.0.6</version>
  <type>pom</type>
</dependency>

Gradle

compile 'com.guichaguri:minimalftp:1.0.6'

Ivy

<dependency org='com.guichaguri' name='minimalftp' rev='1.0.6'>
  <artifact name='minimalftp' ext='pom' />
</dependency>

API

Check out more examples here :)

// Uses the current working directory as the root
File root = new File(System.getProperty("user.dir"));

// Creates a native file system
NativeFileSystem fs = new NativeFileSystem(root);

// Creates a noop authenticator, which allows anonymous authentication
NoOpAuthenticator auth = new NoOpAuthenticator(fs);

// Creates the server with the authenticator
FTPServer server = new FTPServer(auth);

// Start listening synchronously
server.listenSync(21);

Версии библиотеки

Версия
1.0.6
1.0.5
1.0.4
1.0.3