All Projects → jdrouet → Mrml

jdrouet / Mrml

Licence: other
Implementation of mjml in rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Mrml

Mail
Mail app designed for elementary OS
Stars: ✭ 130 (+71.05%)
Mutual labels:  hacktoberfest, email
Phpmailer
The classic email sending library for PHP
Stars: ✭ 17,485 (+22906.58%)
Mutual labels:  hacktoberfest, email
Mailcare
[MIRRORING REPOSITORY] See https://gitlab.com/mailcare/mailcare. MailCare is an open source disposable email address services. Accessible via web browser or API to protect your privacy right now.
Stars: ✭ 136 (+78.95%)
Mutual labels:  hacktoberfest, email
Yii2 Swiftmailer
Yii 2 swiftmailer extension.
Stars: ✭ 109 (+43.42%)
Mutual labels:  hacktoberfest, email
Truemail
🚀 Configurable framework agnostic plain Ruby 📨 email validator/verifier. Verify email via Regex, DNS and SMTP. Be sure that email address valid and exists.
Stars: ✭ 717 (+843.42%)
Mutual labels:  hacktoberfest, email
Notifme Sdk
A Node.js library to send all kinds of transactional notifications.
Stars: ✭ 1,854 (+2339.47%)
Mutual labels:  hacktoberfest, email
Wagonwheel
Offer an online version of your Laravel emails to users.
Stars: ✭ 224 (+194.74%)
Mutual labels:  hacktoberfest, email
Grouparoo
🦘 The Grouparoo Monorepo - open source customer data sync framework
Stars: ✭ 334 (+339.47%)
Mutual labels:  hacktoberfest, email
Php Mime Mail Parser
A fully tested email parser for PHP 7.2+ (mailparse extension wrapper).
Stars: ✭ 687 (+803.95%)
Mutual labels:  hacktoberfest, email
Alertmanager
Prometheus Alertmanager
Stars: ✭ 4,574 (+5918.42%)
Mutual labels:  hacktoberfest, email
Hawkpost
Generate links that users can use to submit messages encrypted with your public key.
Stars: ✭ 843 (+1009.21%)
Mutual labels:  hacktoberfest, email
Notify
A dead simple Go library for sending notifications to various messaging services.
Stars: ✭ 727 (+856.58%)
Mutual labels:  hacktoberfest, email
App
The SimpleLogin back-end
Stars: ✭ 958 (+1160.53%)
Mutual labels:  hacktoberfest, email
Awesome Flutter Layouts
Collection of cool Layouts built with Flutter to Inspire Other UI developers and explore the possibilities of Flutter.
Stars: ✭ 75 (-1.32%)
Mutual labels:  hacktoberfest
Waveboxapp
Wavebox Classic has been updated to Wavebox 10. Learn more Wavebox.io
Stars: ✭ 1,198 (+1476.32%)
Mutual labels:  email
Serverless Node Simple Messaging
Simple email AWS lambda function
Stars: ✭ 75 (-1.32%)
Mutual labels:  email
Remoto Desde Chile
Guías y recursos para trabajadores remotes desde Chile -- a.k.a el FAQ de #remoto
Stars: ✭ 74 (-2.63%)
Mutual labels:  hacktoberfest
Dotnet
[MIRROR] Newer mono, .NET languages, and libraries
Stars: ✭ 75 (-1.32%)
Mutual labels:  hacktoberfest
Ebwiki
repository of police abuse cases against people of color
Stars: ✭ 73 (-3.95%)
Mutual labels:  hacktoberfest
Squareup
A sleek and modern startpage
Stars: ✭ 75 (-1.32%)
Mutual labels:  hacktoberfest

MRML

Crates.io Crates.io

Build Status codecov

Maintainability

Introduction

This project is a reimplementation of the nice MJML markup language in Rust.

How to use it

use mrml;

fn main() {
    match mrml::to_html("<mjml><mj-body></mj-body></mjml>", mrml::Options::default()) {
        Ok(content) => println!("{}", content),
        Err(_) => println!("couldn't convert mjml template"),
    };
}

Why?

  • A Node server rendering a mjml template takes around 20Mo of RAM at startup and 130Mo under stress test. In Rust, less than 1.7Mo at startup and a bit less that 3Mo under stress test. The Rust version can also handle 2 times more requests per seconds. You can run the bench by doing bash script/run-bench.sh.
  • The JS implementation cannot be run in the browser. In Rust (and Wasm), you can.

You want to contribute?

Feel free to read our contributing section and the code of conduct.

Performance

With the same linux amd64 machine, to render the amario template

  • Node: 62.803ms
  • Rust: 13.180ms

To reproduce those results:

  • Node, in example/mjml-bench run npm start -- ../../resources/template-amario.mjml
  • Rust, run cargo bench amario

With a web server, as of today, on a mac book pro from 2017. (Old result) | | Rust | Node | | ---------------------- | ------ | -------- | | Requests per seconds | 520.50 | 272.61 | | CPU usage at boot time | 0.20% | 1.74% | | CPU usage under bench | 49.81% | 136.83% | | RAM usage at boot time | 1.12MB | 17.27MB | | RAM usage under bench | 2.85MB | 128.32MB | | Docker image size | 77.3MB | 178MB |

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].