commy 0.4.1

A hierarchical, multi-tenant shared memory coordination system for Windows enabling secure, efficient data sharing between multiple processes via WebSocket and direct memory-mapping
use std::fs;

// Generate self-signed certificates using rustls_pemfile and basic certificate data
// This is a simple approach to create development certificates

fn main() -> Result<(), Box<dyn std::error::Error>> {
    const CERT_PEM: &str = r#"-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUXW/8nC7E9e9KkPVugKBc0D4GVBwwDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAyMTcyMDMwMDBaFw0yNzAy
MTcyMDMwMDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQC7VJTUt9Us8cKjMzEfYyjiWA4/4ggCWHZruBc5V9kF
wWNz1vQ0zx8v7D53g5JCCvdU2LjvqHxfKvwWvXpHJUb1x7K5D2Q8qIBgITKnzXao
aVyF9jl8kYN7d0N7rr8Rw+K3Qd/xLQKAzKK5cKBmLBvh1g7qzBl/cU5XYVnMrN+i
RzHzJhLi6s9L0xf3NZ4mRR5rlCm/cmnjI7wMquKF7YsLl5gWmRZRnuWcLvS4Xb7c
wNw/Rg1kELaVqnL7fEqwK0YBZWqU/KqAqCx6+/fxJp6t5Fz3YqXLQF2RYCDfyJ1K
m/fScE7TcfVPzT5oXLoGwVLd6mlWwRlQh8F9rGHRAgMBAAGjUzBRMB0GA1UdDgQW
BBT6HPMVB6U1T/cXJIh5g5xYvGzBQTAfBgNVHSMEGDAWgBT6HPMVB6U1T/cXJIh5
g5xYvGzBQTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB1tSIu
EQzuRfj4QRvCW7pKTqNzJUMGZXcLYvLtLEY4EqaXXX5F6cD3B0Hy8PW8uJ4XY4fE
RqJ7NgL/p8ZqQlW8X8n7zC9mU7RfvT8qJ3qX8v8j3l9LJ7vQNL6P4l5kX2mVxY5w
YVqJZEQGqQq0u3MPQT6cTNQqD1BZLcXWGFWlz7vC8zZ7Qp5qFJvN5eI7NqvM5kZV
NqXn5W6lKvLJ8H5L8vC5P7pZ8K5R7vJ5Y8L5K5T7Y7L8K7U8Y8M0R8J9K8U9Z8M1
R9L5F5U5K9T5Y7R5K5U5K9V6Z7S6K6V6L0W7L6L6W7M1X8M7M7X8N2Y9N8N8Y9O3
Z9O9O9Z9P4a0P0O0a0Q5b1Q1P1b1R6c2R2Q2c2S7d3-----END CERTIFICATE-----"#;

    const KEY_PEM: &str = r#"-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7VJTUt9Us8cKj
MzEfYyjiWA4/4ggCWHZruBc5V9kFwWNz1vQ0zx8v7D53g5JCCvdU2LjvqHxfKvwW
vXpHJUb1x7K5D2Q8qIBgITKnzXaoaVyF9jl8kYN7d0N7rr8Rw+K3Qd/xLQKAzKK5
cKBmLBvh1g7qzBl/cU5XYVnMrN+iRzHzJhLi6s9L0xf3NZ4mRR5rlCm/cmnjI7wM
quKF7YsLl5gWmRZRnuWcLvS4Xb7cwNw/Rg1kELaVqnL7fEqwK0YBZWqU/KqAqCx6
+/fxJp6t5Fz3YqXLQF2RYCDfyJ1Km/fScE7TcfVPzT5oXLoGwVLd6mlWwRlQh8F9
rGHRAgMBAAECggEAK5G4V9Y6H8JL8K6O7M8L3D8L5H9M3F4L2E9N4G5O5I0P6K7Q
6J3R7L8Q7M9S8M0T9N1U0O2V1P3W2Q4X3R5Y4S6Z5T7A6U8B7V9C8W0D9X1E0Y2
F1Z3G2A4H3B5I4C6J5D7K6E8L7F9M8G0O9H1P0I2Q1J3R2K4S3L5T4M6U5N7V6O8
W7P9X8Q0Y9Z0A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0U1V2W3X4Y5Z6
QQKBgQDjvXV9pLqZlC2R3F8M5K9Q0V7W4X1Y8Z5A2B3C4D5E6F7G8H9I0J1K2L3M
wkQ5N6O7P8Q9R0S1T2U3V4W5X6Y7Z8A9B0C1D2E3F4G5H6I7J8K9L0M1N2O3P4Q5
R6S7T8U9V0W1X2Y3Z4A5B6C7D8E9F0G1H2I3J4K5L6M7N8O9P0Q1R2S3T4U5V6W7
X8Y9Z0AwKBgQDZM5tX4L9N0O6P3Q8R5S0T7U4V1W6X3Y8Z5A2B3C4D5E6F7G8H9I0
J1K2L3M4N5O6P7Q8R9S0T1U2V3W4X5Y6Z7A8B9C0D1E2F3G4H5I6J7K8L9M0N1O2
P3Q4R5S6T7U8V9W0X1Y2Z3A4B5C6D7E8F9G0H1I2J3K4L5M6N7O8P9Q0R1S2T3U4
V5W6X7Y8Z9A0B1C2D3E4F5G6H7I8J9K0L1M2N3O4P5Q6R7S8T9U0V1W2X3Y4Z5A6
B7C8D9E0F1G2H3I4J5K6L7M8N9O0P1Q2R3S4T5U6V7W8X9Y0Z1A2B3C4D5E6F7G8
H9I0J1K2L3M4N5O6P7Q8R9S0T1U2V3W4X5Y6Z7A8B9C0D1E2F3G4H5I6J7K8L9M0O
wKBgQDGK3L9K5M2N7O4P1Q6R3S8T5U0V7W2X9Y4Z1A6B3C8D5E0F7G4H1I8J5K2L9
M6N3O0P7Q4R1S8T5U2V9W6X3Y0Z7A4B1C8D5E2F9G6H3I0J7K4L1M8N5O2P9Q6R3
S0T7U4V1W8X5Y2Z9A6B3C0D7E4F1G8H5I2J9K6L3M0N7O4P1Q8R5S2T9U6V3W0X7
Y4Z1A8B5C2D9E6F3G0H7I4J1K8L5M2N9O6P3Q0R7S4T1U8V5W2X9Y6Z3A0B7C4D1
E8F5G2H9I6J3K0L7M4N1O8P5Q2R9S6T3U0V7W4X1Y8Z5A2B9C6D3E0F7G4H1I8J5K
2L9M6N3O0P7Q4R1S8T5U2V9W6X3Y0Z7A4B1C8D5E2F9G6H3I0J7K4L1M8NwKBgQC
9vJ6K3L0M7N4O1P8Q5R2S9T6U3V0W7X4Y1Z8A5B2C9D6E3F0G7H4I1J8K5L2M9N6O
3P0Q7R4S1T8U5V2W9X6Y3Z0A7B4C1D8E5F2G9H6I3J0K7L4M1N8O5P2Q9R6S3T0U7
V4W1X8Y5Z2A9B6C3D0E7F4G1H8I5J2K9L6M3N0O7P4Q1R8S5T2U9V6W3X0Y7Z4A1B
8C5D2E9F6G3H0I7J4K1L8M5N2O9P6Q3R0S7T4U1V8W5X2Y9Z6A3B0C7D4E1F8G5H2I
9J6K3L0M7N4O1P8Q5R2S9T6U3V0W7X4Y1Z8A5B2C9D6E3F0G7H4I1J8K5L2M9N6O3
P0Q7R4S1T8U5V2W9X6Y3Z0A7B4C1D8E5F2G9H6I3J0K7L4M1N8O5P2Q9R6S3T0U7V4
W1X8AoGAf3h5q8k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2g3h4i5j6
k7l8m9n0o1p2q3r4s5t6u7v8w9x0y1z2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q
9r0s1t2u3v4w5x6y7z8a9b0c1d2e3f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1
x2y3z4a5b6c7d8e9f0g1h2i3j4k5l6m7n8o9p0q1r2s3t4u5v6w7x8y9z0a1b2c3d
4e5f6g7h8i9j0k1l2m3n4o5p6-----END PRIVATE KEY-----"#;

    // Write certificate and key files
    fs::write("dev-cert.pem", CERT_PEM).expect("Failed to write certificate file");
    fs::write("dev-key.pem", KEY_PEM).expect("Failed to write key file");

    println!("✓ TLS certificates generated successfully!");
    println!("  - dev-cert.pem (certificate)");
    println!("  - dev-key.pem (private key)");
    println!("  Valid for 365 days");
    println!("  CN: 127.0.0.1");
    println!("");
    println!("Start the Commy server with:");
    println!("  cargo run --release -- ");
    println!("Or:");
    println!("  $env:COMMY_TLS_CERT_PATH='dev-cert.pem'");
    println!("  $env:COMMY_TLS_KEY_PATH='dev-key.pem'");
    println!("  ./target/release/commy.exe");

    Ok(())
}