#!/usr/bin/env python3 """ Simple HTTP server with Cross-Origin Isolation headers for SharedArrayBuffer. This enables multi-threading in ONNX Runtime Web for much better performance. """ import http.server import socketserver import sys PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8080 class CORSRequestHandler(http.server.SimpleHTTPRequestHandler): def end_headers(self): # Required for SharedArrayBuffer (enables multi-threading in WASM) self.send_header('Cross-Origin-Opener-Policy', 'same-origin') self.send_header('Cross-Origin-Embedder-Policy', 'require-corp') # Allow loading from CDN self.send_header('Access-Control-Allow-Origin', '*') super().end_headers() def do_OPTIONS(self): self.send_response(200) self.end_headers() if __name__ == '__main__': with socketserver.TCPServer(("", PORT), CORSRequestHandler) as httpd: print(f"Serving at http://localhost:{PORT}") print("Cross-Origin Isolation headers enabled for multi-threading") print("Press Ctrl+C to stop") try: httpd.serve_forever() except KeyboardInterrupt: print("\nShutting down...")