@@ -10,7 +10,6 @@ A simple tool to manage multiple AWS accounts with SSO support and easy account
1010
1111🦀 — This is the ** Rust** implementation of the original [ Python implementation] ( https://github.com/KeeCLI/kee.py ) , providing identical functionality with the performance and safety benefits of Rust, while maintaining complete compatibility with existing configurations and workflows.
1212
13-
1413## Why Rust?
1514
1615- 🚀 ** Performance** : Compiled binary, faster startup times
@@ -24,6 +23,7 @@ A simple tool to manage multiple AWS accounts with SSO support and easy account
2423## Installation
2524
2625### Prerequisites
26+
2727- Rust 1.80+ (install from [ rustup.rs] ( https://rustup.rs/ ) ) (On Mac with brew: ` brew install rust ` )
2828- AWS CLI v2 installed and configured
2929- Access to AWS SSO
@@ -37,13 +37,16 @@ git clone https://github.com/keecli/kee.rs.git ~/.kee
3737### Build and install
3838
3939** Option 1: Automated (recommended)**
40+
4041``` bash
4142cd ~ /.kee
4243./install.sh
4344```
45+
4446> This script will build an optimized ` Kee ` binary, install it (in ` ~/.cargo/bin ` ), and add the folder to your ` PATH ` .
4547
4648** Option 2: Manual**
49+
4750``` bash
4851cd ~ /.kee
4952
@@ -60,6 +63,7 @@ source ~/.zshrc # or ~/.bashrc
6063```
6164
6265** Option 3: Direct copy**
66+
6367``` bash
6468cd ~ /.kee
6569
@@ -70,20 +74,20 @@ cp target/release/kee ~/.local/bin/ # Make sure ~/.local/bin is in your PATH
7074
7175## Feature comparison
7276
73- | Feature | Python Version | Rust Version | Notes |
74- | ---------| ---------------| --------------| -------|
75- | ** SSO integration** | ✅ | ✅ | Identical AWS CLI integration |
76- | ** Sub-shell isolation** | ✅ | ✅ | Same environment management |
77- | ** Account management** | ✅ | ✅ | Add, use, list, remove accounts |
78- | ** Session management** | ✅ | ✅ | Prevents nested sessions |
79- | ** Config file format** | ✅ | ✅ | Same JSON structure |
80- | ** AWS config management** | ✅ | ✅ | Same file handling |
81- | ** Cross-platform** | ✅ | ✅ | Windows, macOS, Linux |
82- | ** Error handling** | ✅ | ✅ | Comprehensive error management |
83- | ** Performance** | Good | ** Excellent** | Compiled binary |
84- | ** Memory usage** | Higher | ** Lower** | No runtime overhead |
85- | ** Startup time** | ~ 100ms | ** ~ 5ms** | No interpreter startup |
86- | ** Binary size** | N/A | ** ~ 1.5MB** | Single executable |
77+ | Feature | Python Version | Rust Version | Notes |
78+ | ------------------------- | -------------- | ------------- | ------------------------------- |
79+ | ** SSO integration** | ✅ | ✅ | Identical AWS CLI integration |
80+ | ** Sub-shell isolation** | ✅ | ✅ | Same environment management |
81+ | ** Account management** | ✅ | ✅ | Add, use, list, remove accounts |
82+ | ** Session management** | ✅ | ✅ | Prevents nested sessions |
83+ | ** Config file format** | ✅ | ✅ | Same JSON structure |
84+ | ** AWS config management** | ✅ | ✅ | Same file handling |
85+ | ** Cross-platform** | ✅ | ✅ | Windows, macOS, Linux |
86+ | ** Error handling** | ✅ | ✅ | Comprehensive error management |
87+ | ** Performance** | Good | ** Excellent** | Compiled binary |
88+ | ** Memory usage** | Higher | ** Lower** | No runtime overhead |
89+ | ** Startup time** | ~ 100ms | ** ~ 5ms** | No interpreter startup |
90+ | ** Binary size** | N/A | ** ~ 1.5MB** | Single executable |
8791
8892## Usage
8993
@@ -110,6 +114,7 @@ kee --help
110114## Development
111115
112116### Building
117+
113118``` bash
114119# Debug build
115120cargo build
@@ -127,34 +132,38 @@ cargo clippy
127132
128133## Performance benchmarks
129134
130- | Operation | Python | Rust | Improvement |
131- | -----------| --------------- | -------------- | -------------|
132- | ** Startup** | ~ 100ms | ~ 5ms | ** 20x faster** |
133- | ** Config load** | ~ 10ms | ~ 1ms | ** 10x faster** |
134- | ** Memory usage** | ~ 25MB | ~ 2MB | ** 12x less** |
135- | ** Binary size** | N/A | ~ 1.5MB | Single file |
135+ | Operation | Python | Rust | Improvement |
136+ | ---------------- | ------ | ------ | -------------- |
137+ | ** Startup** | ~ 100ms | ~ 5ms | ** 20x faster** |
138+ | ** Config load** | ~ 10ms | ~ 1ms | ** 10x faster** |
139+ | ** Memory usage** | ~ 25MB | ~ 2MB | ** 12x less** |
140+ | ** Binary size** | N/A | ~ 1.5MB | Single file |
136141
137142## Cross-platform support
138143
139144** Identical support across:**
145+
140146- ** macOS** : Full support with shell prompt integration
141147- ** Linux** : Full support with shell prompt integration
142148- ** Windows** : Full support (prompt integration not available)
143149
144150** Platform-specific optimizations:**
151+
145152- ** Windows** : Uses ` COMSPEC ` for shell detection
146153- ** Unix** : Uses ` SHELL ` environment variable
147154- ** All** : Proper path handling with ` std::path `
148155
149156## Migration from the Python version
150157
151158** Zero migration required:**
159+
152160- Same configuration files (` ~/.aws/kee.json ` )
153161- Same AWS config format
154162- Same command-line interface
155163- Same environment variables
156164
157165** Drop-in Replacement:**
166+
158167``` bash
159168# Remove the Python version
160169rm /usr/local/bin/kee
@@ -178,12 +187,14 @@ cargo install --path . --force
178187## Distribution
179188
180189** Binary distribution:**
190+
181191- Single executable file
182192- No runtime dependencies
183193- Easy deployment to servers
184194- Container-friendly
185195
186196** Package managers:**
197+
187198- ** Cargo** : ` cargo install kee `
188199- ** Homebrew** : ` brew install kee ` (when published)
189200- ** Scoop** : ` scoop install kee ` (Windows, when published)
@@ -200,6 +211,7 @@ Same contribution guidelines as Python version, plus:
2002115 . Submit a pull request
201212
202213** Rust-specific:**
214+
203215- Follow ` rustfmt ` formatting
204216- Pass ` clippy ` lints
205217
@@ -216,4 +228,8 @@ MIT License - see LICENSE file for details.
216228
217229## Support
218230
219- For issues, questions, or contributions, please visit the project repository or create an issue.
231+ RTFM, then RTFC... If you are still stuck or just need an additional feature, file an [ issue] ( https://github.com/KeeCLI/kee.py/issues ) .
232+
233+ <div align =" center " >
234+ ✌🏼
235+ </div >
0 commit comments