"github.com/jessevdk/go-flags"
 
        "github.com/anacrolix/torrent"
+       "github.com/anacrolix/torrent/data/mmap"
        "github.com/anacrolix/torrent/metainfo"
 )
 
        var rootGroup struct {
                Client    torrent.Config `group:"Client Options"`
                TestPeers []string       `long:"test-peer" description:"address of peer to inject to every torrent"`
+               MMap      bool           `long:"mmap" description:"memory-map the torrent files"`
        }
        // Don't pass flags.PrintError because it's inconsistent with printing.
        // https://github.com/jessevdk/go-flags/issues/132
        if err != nil {
                log.Fatal(err)
        }
+       if rootGroup.MMap {
+               rootGroup.Client.TorrentDataOpener = func(info *metainfo.Info) torrent.Data {
+                       ret, err := mmap.TorrentData(info, "")
+                       if err != nil {
+                               log.Fatalf("error opening torrent data for %q: %s", info.Name, err)
+                       }
+                       return ret
+               }
+       }
 
        if len(posArgs) == 0 {
                fmt.Fprintln(os.Stderr, "no torrents specified")