[{"data":1,"prerenderedAt":312},["ShallowReactive",2],{"project-7905318":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":97,"maker_in_thread":171,"shape":183,"grid":188,"attempts":274,"same_week":275,"maker_shows":40,"maker_hidden":304,"reader_version":305,"card":306},"7905318","Switchboard","open-source email processing in Erlang","title","Show HN: Switchboard – open-source email processing in Erlang","http:\u002F\u002Fswitchboard.spatch.co","switchboard.spatch.co","mickhagen",1403022353,2014,92,37,307,2272,14,"notable","infrastructure","email processing server","library",[24,25,26,27,28],"email processing","imap","erlang","jmap","email automation","loved",0.263,{"positive":32,"neutral":33,"mixed":34,"critical":34},8,23,0,31,{"idea":37,"execution":39,"performance":41,"docs":42,"privacy":43},{"positive":38,"critical":34},5,{"positive":40,"critical":34},1,{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":34,"critical":34},[45,38,38,38,38,34,34,45,45,34,45,38,45,45,45,45,34,45,45,45,45,45,45,38,45,45,45,45,45,45,45,45,45,34,38,38,34],3,null,{"problem":48,"audience":60,"pricing":46,"motivation":66,"time_to_build":46,"stack":70,"openness":94,"stage":95,"team_size":96},{"value":49,"source":50,"evidence":51},"Processing emails as they arrive in IMAP mailboxes is hard; Switchboard manages IMAP connections and boilerplate.","commenter",[52,56],{"id":53,"by":54,"text":55},"7905559","jtmoulia","1. IMAP is powerful and ubiquitous, but it does put a lot of work on the client: implementing a parser, caching values, correctly handling unsolicited messages. Switchboard tries…",{"id":57,"by":58,"text":59},"7906519","makeshifthoop","It should work very well for specifying the logic around the calendar example: Switchboard would accept the credentials of the accounts to monitor, e.g. calendar@mydomain.com,…",{"value":61,"source":50,"evidence":62},"Developers who process emails",[63],{"id":64,"by":54,"text":65},"7905432","I worked with Spatch to make Switchboard, and will be around to answer any questions. Our motivation in building and continuing to build Switchboard is to make it easier for…",{"value":67,"source":50,"evidence":68},"Make it easier for developers to process emails.",[69],{"id":64,"by":54,"text":65},[71,77,84,90],{"value":72,"source":73,"evidence":74},"Erlang","maker",[75],{"id":76},"post",{"value":78,"source":50,"evidence":79},"IMAP IDLE",[80],{"id":81,"by":82,"text":83},"7906189","bismark","It would sit along side your Dovecot server. The Switchboard core subscribes to events in a folder (using IMAP IDLE) and issues change events to connected workers.",{"value":85,"source":50,"evidence":86},"JSON over websockets",[87],{"id":88,"by":58,"text":89},"7906574","Currently, there are worker\u002Fclient implementations in Python, Ruby, and JavaScript. New languages can be added in response to demand -- is there a language you'd be interested in…",{"value":91,"source":50,"evidence":92},"Python, Ruby and JavaScript clients",[93],{"id":88,"by":58,"text":89},"open_source","launched","team",{"praise":98,"objections":120,"requests":126,"questions":141,"alternatives":156},[99,110],{"value":100,"source":50,"evidence":101},"Useful foundation that saves significant effort building email tools",[102,106],{"id":103,"by":104,"text":105},"7905425","buf","I did a project like this a few years ago and here are my takeaways: 1. Building on top of IMAP is very difficult. It's not a technology that is really designed for the mobile…",{"id":107,"by":108,"text":109},"7906283","fit2rule","This is a really neat tool, and I look forward to using it. I can think of a number of uses, already - analyses of mailbox activity, statistics and metrics collection,…",{"value":111,"source":50,"evidence":112},"Open source is a key advantage over context.io",[113,117],{"id":114,"by":115,"text":116},"7905424","sherm8n","I worked on an email application for a year that was on top of imap. It was slow as hell. How does switchboard get around that? On another note, I think context.io provides a…",{"id":118,"by":54,"text":119},"7905478","For Switchboard's intended task of as-they-arrive email processing, speed is not a huge issue. That being said, there are plans for using more than one IMAP connection to…",[121],{"value":122,"source":50,"evidence":123},"Building on IMAP is difficult and slow",[124,125],{"id":103,"by":104,"text":105},{"id":114,"by":115,"text":116},[127,134],{"value":128,"source":50,"evidence":129},"Threading support",[130,131],{"id":103,"by":104,"text":105},{"id":132,"by":58,"text":133},"7906669","That article is a classic, and is used by most people I've talked to implement threading if they can't rely on the IMAP server supporting the THREAD extension [1]. However, it…",{"value":135,"source":50,"evidence":136},"Clients in more languages",[137],{"id":138,"by":139,"text":140},"7906525","joshdance","Looks great. Any future plans for implementations or API in other languages?",[142,149],{"value":143,"source":50,"evidence":144},"How it differs from Lamson",[145],{"id":146,"by":147,"text":148},"7906282","sandGorgon","Does anyone know how this compares to Lamson (which has been around for quite some time) ? [1] http:\u002F\u002Flamsonproject.org\u002F",{"value":150,"source":50,"evidence":151},"Where it sits relative to Postfix and Dovecot",[152],{"id":153,"by":154,"text":155},"7906151","soupdiver","I think I haven't clearly understood where to use Switchboard. In my normal mail stack (postfix, dovecot) where would Switchboard be placed?",[157,161,165],{"value":158,"source":50,"evidence":159},"Lamson",[160],{"id":146,"by":147,"text":148},{"value":162,"source":50,"evidence":163},"context.io",[164],{"id":114,"by":115,"text":116},{"value":166,"source":50,"evidence":167},"Apache James",[168],{"id":169,"by":147,"text":170},"7911361","Correct me if I'm wrong, but Lamson enables those hooks\u002Fworkers as well - but integrates with an FSM and a queuing mechanism (Celery) to get this done. Additionally, there is…",{"comments":45,"answered":172,"key":173},2,[174,177,180],{"id":175,"text":176},"7906321","Lamson is an SMTP server which acts as the gateway for emails from the outside world to be put in your mail store. Switchboard doesn't have any direct connection to SMTP. It…",{"id":178,"text":179},"7906074","I'm guessing that you want the emails to be encrypted before being saved to any disk? In that case, Switchboard isn't sufficient: it runs in front of email providers, and can't…",{"id":181,"text":182},"7905795","Great, I hope it's a good fit! If not, please let us know about any sticking points either through the mailing list, switchboarddev _at_ librelist.com, or the GitHub issues page.",{"commenters":184,"max_depth":185,"maker_replies":45,"first_comment_mins":186,"lifespan_hours":187},21,4,7,52,[189,191,194,195,198,200,204,206,210,212,216,217,218,220,221,222,225,226,227,229,231,232,235,237,241,244,246,249,251,254,256,258,259,264,265,269,273],[64,34,45,190,54,34],"maker\u002Fneutral\u002Fnone",[192,34,38,193,108,34],"7906330","project\u002Fpositive\u002Fidea",[57,34,38,193,58,34],[196,34,38,197,108,34],"7906607","project\u002Fpositive\u002Fnone",[103,40,38,199,104,34],"project\u002Fpositive\u002Fexecution",[201,40,34,202,203,34],"7905464","commenter\u002Fneutral\u002Fnone","austenallred",[205,40,34,202,104,34],"7905487",[207,40,45,208,209,34],"7905547","project\u002Fneutral\u002Fidea","askura",[53,40,45,211,54,34],"project\u002Fneutral\u002Fexecution",[213,40,34,214,215,34],"7906404","other\u002Fneutral\u002Fnone","angersock",[132,40,45,211,58,34],[107,172,38,193,108,34],[114,45,45,219,115,34],"project\u002Fneutral\u002Fperformance",[118,45,45,219,54,34],[146,185,45,208,147,34],[223,185,45,224,209,34],"7906315","project\u002Fneutral\u002Fnone",[175,185,34,208,11,40],[169,185,45,208,147,34],[228,185,45,208,54,34],"7918152",[153,38,45,230,154,34],"project\u002Fneutral\u002Fdocs",[81,38,45,230,82,34],[233,38,45,208,234,34],"7906238","X4",[236,38,45,208,58,34],"7906426",[238,239,38,193,240,34],"7905513",6,"nwalter08",[242,186,45,208,243,34],"7906094","wmf",[245,186,45,230,82,34],"7906199",[247,32,45,211,248,34],"7905366","christophe971",[250,32,45,211,54,34],"7905411",[252,32,45,211,253,34],"7905414","oelmekki",[255,32,45,211,54,34],"7905496",[138,257,45,224,139,34],9,[88,257,45,224,58,34],[260,261,45,262,263,34],"7905932",10,"project\u002Fneutral\u002Fprivacy","dmix",[178,261,34,262,11,40],[266,267,38,197,268,34],"7913526",11,"erlangod",[270,271,38,193,272,34],"7905713",12,"ing33k",[181,271,34,190,11,40],[],[276,281,285,290,295,300],{"id":277,"name":278,"points":279,"category":280},"7905910","Wavepot",625,"creative",{"id":282,"name":283,"points":284,"category":280},"7904658","Horizon",380,{"id":286,"name":287,"points":288,"category":289},"7883900","The Rap Test",141,"games",{"id":291,"name":292,"points":293,"category":294},"7906109","Hummingbird",91,"consumer_social",{"id":296,"name":297,"points":298,"category":299},"7886270","AllSeeingEye",82,"productivity",{"id":301,"name":302,"points":303,"category":299},"7899418","Planleaf",76,false,"v2",{"id":307,"name":5,"line":6,"ai":304,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":308,"top":18,"kw":309,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":310,"url":9,"mix":311,"praise":100,"objection":122,"sub":21},7905318,0.26,[24,25,26,27,28],"3555500330353333033333353333333330550",[32,33,34,34],1794036519019]