-
Notifications
You must be signed in to change notification settings - Fork 341
Rust Plugin Framework with PII Filter Implementation #1251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
########################### | ||
# Rust builder stage - manylinux2014 container for proper GLIBC compatibility | ||
########################### | ||
FROM quay.io/pypa/manylinux2014_x86_64:latest AS rust-builder |
Check warning
Code scanning / Hadolint
Using latest is prone to errors if the image will ever update. Pin the version explicitly to a release tag Warning
| Secrets Detection | ~5ms/request | ~0.8ms/request | **5-8x** | | ||
| SQL Sanitizer | ~3ms/request | ~0.6ms/request | **4-6x** | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two are not yet implemented, or at least not part of this PR, right?
Rust Plugin Framework with PII Filter Implementation
feat: Add Rust plugin framework with high-performance PII filter (5-100x speedup) closes #1249
Summary
This PR introduces a Rust plugin framework for MCP Gateway with an initial high-performance PII filter implementation. The framework provides automatic fallback between Rust and Python implementations, comprehensive testing, and full CI/CD integration.
Key Features
Performance Improvements
Files Changed (37 files, +8564/-9 lines)
Core Framework
plugins_rust/src/lib.rs
- Main library entry pointplugins_rust/src/pii_filter/
- Rust PII filter implementationdetector.rs
- Core detection logic with parallel processingpatterns.rs
- Optimized regex patterns for PII detectionmasking.rs
- Text masking strategiesconfig.rs
- Configuration and Python bindingsAuto-Detection & Integration
plugins/pii_filter/pii_filter.py
- Enhanced with Rust auto-detectionplugins/pii_filter/pii_filter_rust.py
- Python wrapper for Rust implementationplugins/pii_filter/pii_filter_python.py
- Pure Python fallbackmcpgateway/schemas.py
- Addedimplementation
field toPluginSummary
mcpgateway/services/plugin_service.py
- Extract implementation type for APImcpgateway/templates/plugins_partial.html
- Display implementation badgesTesting & Quality
tests/unit/mcpgateway/plugins/test_pii_filter_rust.py
- Comprehensive unit teststests/differential/test_pii_filter_differential.py
- Validate Rust/Python equivalenceplugins_rust/tests/integration.rs
- Rust integration testsplugins_rust/benches/pii_filter.rs
- Performance benchmarksplugins_rust/benchmarks/compare_pii_filter.py
- Cross-implementation comparisonDocumentation
plugins_rust/README.md
- Complete framework documentationplugins_rust/QUICKSTART.md
- Quick start guide for Rust pluginsplugins_rust/docs/implementation-guide.md
- Step-by-step implementation guideplugins_rust/docs/build-and-test.md
- Build and testing documentationplugins_rust/benchmarks/docs/latest-results.md
- Performance benchmark resultsdocs/docs/using/plugins/rust-plugins.md
- User-facing documentationBuild & CI/CD
.github/workflows/rust-plugins.yml
- Complete CI/CD pipelineMakefile
- Added Rust plugin build targetsplugins_rust/Makefile
- Comprehensive build automationplugins_rust/Cargo.toml
- Rust project configurationplugins_rust/pyproject.toml
- Python packaging configurationOther Changes
.pre-commit-config.yaml
- Excludetests/load/
from naming checksmcpgateway/middleware/request_logging_middleware.py
- Fixed pylint warnings.gitignore
- Added Rust build artifactsTechnical Details
Auto-Detection Logic
UI Display
/admin/plugins
API inPluginSummary
schemaCI/CD Pipeline
Installation
For Users (Python only)
For Developers
Testing
Test Coverage
Run Tests Locally
Breaking Changes
None. This is a purely additive change with automatic fallback to Python implementation.
Migration Guide
No migration required. Existing Python PII filter continues to work. Users can opt-in to Rust acceleration with:
Performance Validation
Benchmark Results
See
plugins_rust/benchmarks/docs/latest-results.md
for complete results.Documentation
User Documentation
docs/docs/using/plugins/rust-plugins.md
- Complete user guideplugins_rust/README.md
- Framework overviewplugins_rust/QUICKSTART.md
- Quick start guideDeveloper Documentation
plugins_rust/docs/implementation-guide.md
- How to build Rust pluginsplugins_rust/docs/build-and-test.md
- Build system documentationplugins_rust/benchmarks/docs/quick-reference.md
- Benchmarking guideChecklist
Related Issues
Closes #[issue number if applicable]
Screenshots
Plugin catalog UI showing Rust implementation badge:

Autodetect on load:
Notes for Reviewers
Next Steps (Future Work)