No description
Find a file
Paul Campbell 2ddc79d826
All checks were successful
Rust / build (map[name:stable]) (push) Successful in 3m13s
Rust / build (map[name:nightly]) (push) Successful in 6m25s
Release Please / Release-plz (push) Successful in 30s
feat: Add Debug, Clone, Default, PartialEq, Eq, Send, Sync to as many or our types as possible.
- adds tokio::sync as a dependency to provide an async Mutex for Clone of Net and MockNet

## ƒs

- adds `Clone` to `DirItem`
- adds `Default`, `PartialEq` and `Eq` to `FileSystem`, `PathMarker`, `FileMarker` and `DirMarker`
- adds `Default` to `PathReal`
- adds `Clone`, `Debug`, `Default`, `PartialEq` and `Eq` to `Reader`

## net

- `MockNet::try_from` now returns a `Future`, so should be `await`ed
- adds `Debug` to `Plan`
- adds `Debug` and `Default` to `Net`
- adds `Debug`, `Clone` and `Default` to `MockNet`
- adds `Debug`, `Clone`, `PartialEq` and `Eq` to `MatchRequest`
- adds `Debug` and `Clone` to `WhenRequest`

WIP: mutation tests
2024-11-16 12:18:21 +00:00
.cargo build: switch to forgejo actions 2024-10-29 22:30:17 +00:00
.forgejo/workflows chore(deps): update kemitix/rust action to v2.4.1 2024-11-14 11:33:03 +00:00
.git-hooks feat: initial empty library 2024-04-08 14:33:39 +01:00
examples feat: re-export Method, Url, Request, Response and RequestBuilder from http, url and reqwest crates 2024-11-15 09:13:14 +00:00
src feat: Add Debug, Clone, Default, PartialEq, Eq, Send, Sync to as many or our types as possible. 2024-11-16 12:18:21 +00:00
tests feat: Add Debug, Clone, Default, PartialEq, Eq, Send, Sync to as many or our types as possible. 2024-11-16 12:18:21 +00:00
.git-next.toml build: Add .git-next.toml config file 2024-04-16 07:06:50 +01:00
.gitignore build: ignore cargo-mutants output 2024-11-08 18:12:25 +00:00
.rgignore feat: initial empty library 2024-04-08 14:33:39 +01:00
bacon.toml feat: initial empty library 2024-04-08 14:33:39 +01:00
Cargo.toml feat: Add Debug, Clone, Default, PartialEq, Eq, Send, Sync to as many or our types as possible. 2024-11-16 12:18:21 +00:00
CHANGELOG.md chore: release v2.1.1 2024-11-15 21:20:34 +00:00
justfile feat(net): cleaner mock.on syntax 2024-11-11 21:41:32 +00:00
LICENSE feat: initial empty library 2024-04-08 14:33:39 +01:00
README.md doc(net): added 2024-11-11 22:27:42 +00:00
renovate.json chore(deps): prevent renovate creating pointless PRs 2024-04-27 14:29:48 +01:00

kxio

kxio is a Rust library that provides injectable FileSystem and Network resources to enhance the testability of your code. By abstracting system-level interactions, kxio enables easier mocking and testing of code that relies on file system and network operations.

Features

  • Filesystem Abstraction
  • Network Abstraction
  • Enhanced Testability

Filesystem

The Filesystem module offers a clean abstraction over std::fs, the standard file system operations. For comprehensive documentation and usage examples, please refer to https://docs.rs/kxio/latest/kxio/fs/.

Key Filesystem Features:

  • File reading and writing
  • Directory operations
  • File metadata access
  • Fluent API for operations like .reader().bytes()

Network

The Network module offers a testable interface over the reqwest crate. For comprehensive documentation and usage examples, please refer to https://docs.rs/kxio/latest/kxio/net/

Getting Started

Add kxio to your Cargo.toml:

[dependencies]
kxio = "x.y.z"

Usage

See the example get.rs for an annotated example on how to use the kxio library. It covers both the net and fs modules.

Development

Contributing

Contributions are welcome! Please check our issue tracker for open tasks or submit your own ideas.

License

This project is licensed under the terms specified in the LICENSE file in the repository root.

Acknowledgements

  • Built with Rust

For more information, bug reports, or feature requests, please visit our repository.