GithubHelp home page GithubHelp logo

dongindl / smtpd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brightcode/smtpd

0.0 0.0 0.0 953 KB

Implementation of a basic SMTP daemon in various languages and platforms.

Makefile 0.34% C 9.33% Shell 0.24% Erlang 7.94% Go 2.45% Java 42.93% Ruby 28.29% JavaScript 3.39% Scala 5.10%

smtpd's Introduction

SmtpD

Implementation of a basic SMTP daemon in various languages and platforms.

I created this project as an exercise in polyglot programming and to test the performance of various frameworks. A lot of inspiration for this project came from HelloD.

All implementations have roughly the same functionality, which is at the "hello world" level. They listen on all interfaces for connections on port 2525 and blackhole incoming emails. For a more complete implementation of an SMTP server, you need to look for other open source projects.

Running

Erlang

cd erlang
./compile
./start
1> application:start(smtpd).

Go

cd go
gomake
./smtpd

Java - Netty

cd java-netty
./compile
./smtpd

JRuby - Netty

cd jruby-netty
jruby smtp_server.rb

Node

cd node
node smtpd.js

Ruby - Cool.io

cd ruby-coolio
bundle
ruby smtpd.rb

Ruby - EventMachine

cd ruby-em
bundle
ruby smtpd.rb

Ruby - Celluloid evented

cd ruby-cell-ev
bundle
jruby --1.9 smtpd.rb

Ruby - Celluloid threaded

cd ruby-cell-th
bundle
jruby --1.9 smtpd.rb

Performance testing

Performance testing with smtpsource. This program is distributed with Postfix.

time smtp-source -c -d -l 32000 -m 10000 -N -s 30 127.0.0.1:2525

See results.md for test results from my MacBook Pro with 2.2 GHz Intel Core i7.

smtpd's People

Contributors

brightcode avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.