• Stars
    star
    245
  • Rank 164,880 (Top 4 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created over 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

compile rust code into memes

cargo-memex

github crates.io docs.rs build status

Besides their size, rust binaries have a significant disadvantage: rust binaries are not memes yet.

cargo-memex is a cargo subcommand that makes it easy to ditch regular rust binaries in favor of memes, which is arguably the far superior container format for rust executables. Rather than to ordinary rust binaries, cargo-memex compiles rust code directly into a meme of your liking.

cargo-memex executeable rust memes thus provide a number of significant improvements over regular rust executables:

Standard rust executables always look the same, which means consistently boring, e.g.: alt text.

With cargo-memex they can look like this:

Also, normal rust executables cannot be easily posted on imageboards like tumbler, or to show off your rust skills on r/rustjerk or on slack or twitter. This also makes it possible to use imagehosting services to distribute your executables.

Another limitation of rust binaries is, that debug and release executables are visually indistinguishable.

cargo-memex fixes this problem by fetching a random meme from r/rustjerk using D3vd/Meme_Api each time.

If no meme could be found it falls back to the corresponding segment of:

You can also request a random meme from any subreddit with the --subreddit "<subreddit>" option.

The same problem exists for different release versions which visually always look completely identical. With cargo-memex you can compile each new release into a different meme to highlight the differences. This makes support much easier since everyone can directly see which version is installed.

Installation

cargo install cargo-memex

Usage

Compile a new cargo project into the built in rust borrow checker meme:

Compile your current project into the meme above, for other built in memes see resources

cargo memex build tradeoffer

Compile your current project in release mode with a random meme from r/rustjerk

cargo memex build --release

Compile with local meme

cargo memex build ./meme.jpg

Use a jpeg meme on the web

cargo memex build "https://meme.jpg"

Use a random jpeg meme from a subreddit

cargo memex build --subreddit dankmemes

To execute a memex executable meme

cargo memex exec meme.jpg

Build then execute in one step

cargo memex run

Roadmap

Once memes are more widely adapted as rust executables, which is expected to happen soon, support for publishing memes will be required.

The recent NFT frenzy has shown that there is a high demand for NFT based solutions, and that especially memes can be very lucrative. Hence, solutions for cargo-memex are currently being investigated in order to tap this growing market. Ideally, the cargo publish subcommand should be extended by an --nft option, so that developers can directly publish a new version of their rust project as a memex NFT.

Known Limitations

  • only jpeg supported at this point

Licensed under either of these:

More Repositories

1

voyager

crawl and scrape web pages in rust
Rust
614
star
2

chromiumoxide

Chrome Devtools Protocol rust API
Rust
522
star
3

defi-bindings

rust bindings for various defi projects
Rust
63
star
4

diffeq

Basic Ordinary Differential Equation solvers
Rust
49
star
5

extrablatt

Article scraping in rust
Rust
46
star
6

cairo-lang-rs

Rust
38
star
7

libp2p-bittorrent-protocol

Rust Implementation of the BitTorrent protocol for libp2p.
Rust
23
star
8

hyperswarm-dht

rust implementation fo the DHT powering the HyperSwarm stack
Rust
17
star
9

crossref-rs

A rust client for the Crossref-API
Rust
13
star
10

str-distance

String Distances in rust
Rust
13
star
11

hypertrie

Secure, distributed single writer key/value store
Rust
11
star
12

hardhat-anvil

TypeScript
9
star
13

plcopen-xml-xcore

The PlcOpen Xml Standard implemented as Xcore model and with full gradle and maven support
Java
9
star
14

archiveis-rs

A simple rust wrapper for the archive.is capturing service.
Rust
6
star
15

kaggle-rs

unofficial rust bindings for the kaggle api
Rust
6
star
16

aoc2021

Python
4
star
17

nom-sparql

Sparql parser written in rust using nom
Rust
4
star
18

rustika

rust bindings to the Apache Tikaβ„’ REST services
Rust
4
star
19

tia-openness-xcore

Xcore model of the TIA Openness documents.
Java
3
star
20

tokio-interval-repro

Rust
3
star
21

forge-ethers-rs-template

a template for starting an ethers-rs project backed by forge
3
star
22

substrate-exchange-xcmp

Deposit, withdraw and swap (parachain) assets
Rust
2
star
23

rust-plexapi

Rust bindings for the Plex API.
Rust
2
star
24

template

basic rust template
Rust
2
star
25

rust-s7

Rust
2
star
26

plcopen-xml

java parser for the plcopen-xml standard
Java
1
star
27

callgraph-graphml

Java
1
star
28

rust-ads

Implementation of Beckhoff's ADS protocol in pure rust.
Rust
1
star
29

windows-envs

Rust
1
star
30

smolgrad

Rust
1
star