I have not found any existing solution to do that and come up with my own:


    ;; Inspired by https://www.emacswiki.org/emacs/BookmarkPlus#BulkDownloadCompileLoad 
    (defun fetch-and-load-elisp (pkg-name pkg-files base-url base-dir)
      (let ((pkg-dir (concat (file-name-as-directory base-dir) (symbol-name pkg-name))))
        (require 'url)
        (add-to-list 'load-path pkg-dir)
        (make-directory pkg-dir t)
        (mapcar (lambda (arg)
                  (let ((local-file (concat (file-name-as-directory pkg-dir) arg)))
                    (unless (file-exists-p local-file)
                      (url-copy-file (concat base-url arg) local-file t))))
                pkg-files)
        (byte-recompile-directory pkg-dir 0)
        (require pkg-name)))
    
    (if (fetch-and-load-elisp 'zoom-frm '("frame-cmds.el" "frame-fns.el" "zoom-frm.el") "https://www.emacswiki.org/emacs/download/" "~/lisp/")
          (define-key ctl-x-map [(control ?+)] 'zoom-in/out)
          (define-key ctl-x-map [(control ?-)] 'zoom-in/out)
          (define-key ctl-x-map [(control ?=)] 'zoom-in/out)
          (define-key ctl-x-map [(control ?0)] 'zoom-in/out))

I am not proficient in ELISP, and perhaps it could be improved. Error handling comes to mind. Also, the byte compilation is now run every time, even when files were unchanged.