# Rust Integration Services
A modern, fast, and lightweight integration library written in Rust, designed for memory safety and stability. It simplifies the development of scalable integrations for receiving and sending data, with built-in support for common protocols.
[](https://crates.io/crates/rust-integration-services)

[](https://docs.rs/rust-integration-services)
[](https://github.com/AndreasLill/rust-integration-services#license)
## Installation
Add rust-integration-services to your project Cargo.toml with all or select features.
**All features**
``` toml
[dependencies]
tokio = { version = "1.47.1", features = ["full"] }
rust-integration-services = { version = "0.4.0", features = ["full"] }
```
**With select features**
``` toml
[dependencies]
tokio = { version = "1.47.1", features = ["full"] }
rust-integration-services = { version = "0.4.0", features = ["file", "schedule", "sftp", "http", "smtp"] }
```
## Features
### File
[Examples](https://github.com/AndreasLill/rust-integration-services/blob/master/src/file/examples.md)
The file module focus on the local file system and is useful for polling files in a directory, copying, moving or writing to a file.
### Http
[Examples](https://github.com/AndreasLill/rust-integration-services/blob/master/src/http/examples.md)
The http module is built on top of the fast and reliable [`hyper`](https://crates.io/crates/hyper) crate, and routing is handled using [`matchit`](https://crates.io/crates/matchit) crate.
It supports both **HTTP/1.1** and **HTTP/2** protocols, enabling modern, high-performance HTTP communication with automatic protocol negotiation via ALPN (Application-Layer Protocol Negotiation) with dynamic routing for REST.
### Sftp
[Examples](https://github.com/AndreasLill/rust-integration-services/blob/master/src/sftp/examples.md)
The sftp module is built on top of the low-level [`russh`](https://crates.io/crates/russh) and [`russh-sftp`](https://crates.io/crates/russh-sftp) crates.
These crates provide direct access to the SSH transport layer and the SFTP protocol, giving full control over connection management, authentication, and file transfer operations.
### Smtp
The SMTP module is built on top of the reliable [`lettre`](https://crates.io/crates/lettre) crate.
`lettre` provides an asynchronous, rust-native SMTP support for secure connections via TLS.
### Schedule
[Examples](https://github.com/AndreasLill/rust-integration-services/blob/master/src/schedule/examples.md)
The schedule module assist in scheduling tasks over time, such as hourly, daily or weekly.
During downtime or maintenance it calculates the next scheduled time automatically on resume.