Spaces:
Running
Running
| #!/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...") | |