Le canon électro-magnétique, connu aussi sous le nom anglais de railgun — ou rail gun — d'où la traduction canon à rails – à ne pas confondre avec l'artillerie lourde sur voie ferrée (1914-1918 et 1939-1945) – est une arme à projectile accéléré par une force électromagnétique, semblable à celle qui fait tourner le moteur homopolaire.
Le concept sous-jacent est probablement aussi ancien que la découverte de la force de Laplace (avec une proposition en France dès 1884, puis 1908, et une tentative de développement pendant la Première Guerre mondiale qui fut abandonnée faute de résultat probant). Sa réalisation opérationnelle n'est toujours pas d'actualité. Il n'existe actuellement que des prototypes utilisables en laboratoire.
Le concept consiste à établir une différence de potentiel électrique entre deux rails parallèles conducteurs de l'électricité et à insérer entre eux un projectile conducteur pouvant glisser ou rouler dessus, en faisant contact. Dès que le contact a lieu, un courant électrique circule entre les deux rails, un champ magnétique naît et le projectile est accéléré par la force de Laplace (interaction entre le courant qui circule dans le projectile et le champ magnétique créé).
Le canon électrique, à propulsion électromagnétique, ne doit cependant pas être confondu avec une autre forme, le canon magnétique, où le champ magnétique est parallèle à l'axe, et où le projectile, au lieu d'être parcouru par un courant, est ferromagnétique.
On peut néanmoins, pour augmenter la force du canon électrique, renforcer le champ magnétique en ajoutant, de part et d'autre du plan formé par les deux rails, des aimants créant un champ magnétique, perpendiculaire à l'axe, et de sens approprié pour s'ajouter au champ engendré par le courant.
Les deux rails métalliques parallèles sont connectés à un générateur électrique, formant ainsi un circuit ouvert. Dès qu'un objet conducteur est inséré entre les rails, le circuit est fermé, et un courant le suit, allant du pôle + du générateur, par le rail +, l'objet posé, le rail –, vers le pôle – du générateur.