Mise à jour de la configuration Rust, documentation et dépendances
Migration vers Rust 2021, ajout de la documentation en français, mise à jour des dépendances et suppression des crates inutilisées. - Mise à jour de l'édition Rust à 2021 - Ajout de commentaires de documentation en français - Suppression des dépendances `quick-xml` et `xmltree` - Ajout de nouvelles dépendances : `get_if_addrs`, `os_info`, `netstat2`, `sysinfo`, `users` - Mise à jour du fichier README.md et LICENSE - Correction de l'ordre des imports dans `src/process.rs`
This commit is contained in:
154
README.md
Normal file
154
README.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# pmoutils
|
||||
|
||||
[](https://crates.io/crates/pmoutils)
|
||||
[](https://docs.rs/pmoutils)
|
||||
|
||||
Utilitaires système pour la gestion des adresses IP réseau et des processus.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
- **Gestion des adresses IP** : Détection et listing des interfaces réseau
|
||||
- **Surveillance des processus** : Identification des processus utilisant un port spécifique
|
||||
- **Informations système** : Détection de l'OS et de sa version
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Cargo (recommandé)
|
||||
|
||||
Ajoutez cette dépendance à votre `Cargo.toml` :
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
pmoutils = "0.1"
|
||||
```
|
||||
|
||||
### Depuis la source
|
||||
|
||||
```bash
|
||||
git clone https://github.com/coissac/pmo.git
|
||||
cd pmo/pmoutils
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
La documentation complète est disponible sur [docs.rs](https://docs.rs/pmoutils).
|
||||
|
||||
### Gestion des adresses IP
|
||||
|
||||
```rust
|
||||
use pmoutils::guess_local_ip;
|
||||
|
||||
// Devine l'adresse IP locale utilisée pour les connexions sortantes
|
||||
let ip = guess_local_ip();
|
||||
println!("Adresse IP locale: {}", ip);
|
||||
|
||||
// Liste toutes les adresses IP non-loopback
|
||||
use pmoutils::ip_utils::list_all_ips;
|
||||
|
||||
let ips = list_all_ips();
|
||||
for (interface, addresses) in ips {
|
||||
println!("Interface {}: {:?}", interface, addresses);
|
||||
}
|
||||
```
|
||||
|
||||
### Surveillance des processus
|
||||
|
||||
```rust
|
||||
use pmoutils::{find_process_using_port, TransportProtocol};
|
||||
|
||||
// Trouve le processus qui écoute sur un port spécifique
|
||||
let info = find_process_using_port(8080, TransportProtocol::Tcp);
|
||||
|
||||
if let Some(process_info) = info {
|
||||
println!("PID: {}", process_info.pid);
|
||||
println!("Nom: {}", process_info.process_name);
|
||||
println!("Propriétaire: {}", process_info.owner);
|
||||
}
|
||||
```
|
||||
|
||||
### Informations système
|
||||
|
||||
```rust
|
||||
use pmoutils::get_os_string;
|
||||
|
||||
// Obtient le nom et la version du système d'exploitation
|
||||
let os_info = get_os_string();
|
||||
println!("Système: {}", os_info); // Ex: "Linux/6.5.0" ou "macOS/15.1"
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### Modules
|
||||
|
||||
- `ip_utils` : Utilitaires pour la gestion des adresses IP
|
||||
- `guess_local_ip()` → Devine l'IP locale
|
||||
- `list_all_ips()` → Liste toutes les IPs non-loopback
|
||||
|
||||
- `process` : Utilitaires pour la gestion des processus
|
||||
- `find_process_using_port()` → Trouve un processus par port
|
||||
- `ProcessPortInfo` → Structure contenant les informations du processus
|
||||
- `TransportProtocol` → Énumération TCP/UDP
|
||||
|
||||
### Fonctions publiques
|
||||
|
||||
- `get_os_string()` → Retourne une chaîne décrivant l'OS et sa version
|
||||
|
||||
## Exemples complets
|
||||
|
||||
Voir la [documentation API](https://docs.rs/pmoutils) pour plus d'exemples.
|
||||
|
||||
## Platformes supportées
|
||||
|
||||
- macOS (x86_64, ARM64)
|
||||
- Linux (x86_64, ARM64)
|
||||
- Windows (limité - certaines fonctionnalités peuvent ne pas être disponibles)
|
||||
|
||||
## Développement
|
||||
|
||||
### Prérequis
|
||||
|
||||
- Rust 1.70+ (edition 2021)
|
||||
- Cargo (inclus dans Rust)
|
||||
|
||||
### Compilation
|
||||
|
||||
```bash
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
### Tests
|
||||
|
||||
```bash
|
||||
cargo test
|
||||
```
|
||||
|
||||
### Documentation locale
|
||||
|
||||
```bash
|
||||
cargo doc --no-deps
|
||||
```
|
||||
|
||||
Ouvrez `target/doc/pmoutils/index.html` dans votre navigateur.
|
||||
|
||||
## Dépendances
|
||||
|
||||
- `get_if_addrs` : Detection des adresses d'interfaces réseau
|
||||
- `os_info` : Détection multiplateforme de l'OS
|
||||
- `netstat2` : Mapping des sockets et processus
|
||||
- `sysinfo` : Informations système et processus
|
||||
- `users` : Résolution des utilisateurs par UID
|
||||
|
||||
## License
|
||||
|
||||
Ce logiciel est régi par la licence CeCILL version 2.1.
|
||||
|
||||
Ce logiciel est un programme informatique servant à la gestion des
|
||||
adresses IP réseau et des processus système. Il est distribué sous
|
||||
la licence CeCILL telle que publiée par le CEA, le CNRS et l'INRIA.
|
||||
|
||||
Vous pouvez utiliser, modifier et/ou redistribuer ce programme sous
|
||||
les termes de la licence CeCILL telle que publiée par CEA, CNRS et
|
||||
INRIA à l'adresse suivante : [https://cecill.info](https://cecill.info)
|
||||
|
||||
See the `LICENSE` file for the full license text.
|
||||
Reference in New Issue
Block a user