[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"project-21951692":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":46,"post_text":48,"what":49,"said":87,"maker_in_thread":177,"shape":189,"grid":194,"attempts":312,"same_week":313,"maker_shows":341,"maker_hidden":342,"reader_version":343,"card":344},"21951692","amazon-kinesis-video-streams-webrtc-sdk-c","Pure C WebRTC implementation for embedded devices","title","Show HN: Pure C WebRTC implementation for embedded devices","https:\u002F\u002Fgithub.com\u002Fawslabs\u002Famazon-kinesis-video-streams-webrtc-sdk-c","github.com","Sean-Der",1578096332,2020,251,47,186,3028,7,"legend","languages","webrtc library","library",[24,25,26,27,28],"webrtc","embedded c","peer connection","data channels","kinesis video streams","debated",0.12,{"positive":32,"neutral":33,"mixed":34,"critical":33},9,8,1,26,{"performance":37,"privacy":38,"design":41,"execution":42,"idea":44,"docs":45},{"positive":34,"critical":34},{"positive":39,"critical":40},0,2,{"positive":39,"critical":40},{"positive":39,"critical":43},3,{"positive":40,"critical":39},{"positive":39,"critical":39},[47,39,34,43,39,43,47,39,34,39,34,43,39,39,39,43,39,43,39,34,43,39,34,39,39,39,47,43,43,47,47,39,39,34,47,39,47,39,43,47],5,null,{"problem":50,"audience":60,"pricing":48,"motivation":64,"time_to_build":48,"stack":68,"openness":84,"stage":85,"team_size":86},{"value":51,"source":52,"evidence":53},"Brings WebRTC to embedded devices written in pure C with a small footprint","maker",[54,57],{"id":55,"by":11,"text":56},"21953313","Thank you! I actually don't know the embedded world at all. My background is WebRTC\u002Fuserland programming. My answers aren't going to be great, but this is where my learning is at…",{"id":58,"by":11,"text":59},"21952394","1.) Yes it does! It has OnDataChannel, you can set it on the PeerConnection. createDataChannel is a WIP, hopefully this weekend. 2.) Yes. The WebRTC peers can do Data only if…",{"value":61,"source":52,"evidence":62},"Embedded device developers",[63],{"id":55,"by":11,"text":56},{"value":65,"source":52,"evidence":66},"Customer demand for WebRTC on embedded devices",[67],{"id":55,"by":11,"text":56},[69,73,77],{"value":70,"source":52,"evidence":71},"C",[72],{"id":55,"by":11,"text":56},{"value":74,"source":52,"evidence":75},"OpenSSL",[76],{"id":55,"by":11,"text":56},{"value":78,"source":79,"evidence":80},"libusrsctp","commenter",[81],{"id":82,"by":11,"text":83},"21953286","I know Orchid[0]! Me and another Pion developer were just talking about, we both are really impressed. WebRTC is such an amazing technology that it can enable stuff like this…","open_source","launched","company",{"praise":88,"objections":111,"requests":129,"questions":141,"alternatives":153},[89,104],{"value":90,"source":79,"evidence":91},"Impressive WebRTC work and codebase quality",[92,96,100],{"id":93,"by":94,"text":95},"21952740","Matthias247","Wow, that's a huge effort and codebase! Congratulations for releasing it! I like the consistent coding style, the fact that cmake is used, and that sanitizers are used! I see the…",{"id":97,"by":98,"text":99},"21951981","rytill","Sean, where were your libraries a year ago ...? Having implemented the entire WebRTC spec a couple times now, what wisdoms have you learned that can be shared with us mortals? If…",{"id":101,"by":102,"text":103},"21952528","PaulBGD_","Sean is phenominal, when I was writing a WebRTC service a year ago the Pion implementation looked really really good, so good that I learned Golang just to use Pions!",{"value":105,"source":79,"evidence":106},"Useful for surveillance and video projects",[107],{"id":108,"by":109,"text":110},"21952273","tehlike","Nice. I have been on and off woth gstreamer, and combining all of amazon stack for video processing, it makes a lot of sense for surveillance applications!",[112,119],{"value":113,"source":79,"evidence":114},"Requires OpenSSL, limiting use beyond embedded Linux",[115],{"id":116,"by":117,"text":118},"21955384","yc-kraln","There are a few widely-used embedded SSL stacks, of which mbed TLS is probably one worth targeting or adding support for (wolfSSL is another.) So long as this requires OpenSSL…",{"value":120,"source":79,"evidence":121},"WebRTC leaks IP addresses and risks DDoS via P2P",[122,126],{"id":123,"by":124,"text":125},"21953259","lightedman","\"I feel so strongly that WebRTC\u002FP2P is the future I want to see.\" This sounds like it'd bring back the good ol' DDoS days where cable modem users could just knock dial-up users…",{"id":127,"by":124,"text":128},"21955475","Wasn't mDNS designed for small networks like intranets, not the whole internet? I'm reading a discussion on Google where in the comments it is mentioned that you can still obtain…",[130,134],{"value":131,"source":79,"evidence":132},"Support for embedded SSL stacks like mbed TLS or wolfSSL",[133],{"id":116,"by":117,"text":118},{"value":135,"source":79,"evidence":136},"Windows support",[137],{"id":138,"by":139,"text":140},"21952887","saurik","I am very curious to understand better how this stacks up against the usual C++ WebRTC implementation when code size isn't an issue, particularly with respect to flexibility. (I…",[142,149],{"value":143,"source":79,"evidence":144},"Does it support WebRTC data channels",[145],{"id":146,"by":147,"text":148},"21952217","throwGuardian","Looking through the documentation, there is no mention of WebRtc data channel. 1. Does this SDK support WebRtc data channel. 2. Does the AWS Kinesis WebRTC provide a managed…",{"value":150,"source":79,"evidence":151},"How does it compare to the C++ WebRTC implementation",[152],{"id":138,"by":139,"text":140},[154,162,166,170],{"value":155,"source":79,"evidence":156},"Pion WebRTC (Go)",[157,161],{"id":158,"by":159,"text":160},"21952222","gfodor","Very cool! One thing I often ask about in WebRTC threads is if anyone has come across any native erlang or elixir implementations in the wild of the stack (not just signalling.)…",{"id":101,"by":102,"text":103},{"value":163,"source":79,"evidence":164},"aiortc (Python)",[165],{"id":158,"by":159,"text":160},{"value":167,"source":79,"evidence":168},"Google C++ WebRTC library",[169],{"id":138,"by":139,"text":140},{"value":171,"source":79,"evidence":172},"Intel Open WebRTC Toolkit",[173],{"id":174,"by":175,"text":176},"21959418","teleforce","Intel has just released Open WebRTC Toolkit (OWT) [1]. It is an end to end audio\u002Fvideo communication development toolkit based on Webrtc, optimized for Intel Architecture. [1]…",{"comments":178,"answered":18,"key":179},13,[180,183,186],{"id":181,"text":182},"21952113","I am so glad you like them! Working on Pion and the KVS WebRTC stuff has been super rewarding because people want it. I have built so many things that flopped, so this is a…",{"id":184,"text":185},"21952441","The encryption for DataChannels is HW accelerated while video is not. I was able to convince people to change this one! So a developer can opt-in to the accelerated profile.…",{"id":187,"text":188},"21956511","Sorry I haven't done any measurements myself. Agree, it is a trade-off for sure, if you are doing video and packets are already ~1300 bytes it probably makes sense. For Opus only…",{"commenters":190,"max_depth":191,"maker_replies":178,"first_comment_mins":192,"lifespan_hours":193},25,6,55,50,[195,197,199,203,207,209,211,213,217,221,223,226,227,231,232,234,235,237,240,243,245,247,248,249,251,252,255,257,259,263,265,268,271,274,277,279,283,285,286,289,291,295,300,303,305,308,310],[97,39,47,196,98,39],"maker\u002Fpositive\u002Fnone",[181,39,39,198,11,34],"maker\u002Fneutral\u002Fnone",[200,39,34,201,202,39],"21952281","project\u002Fcritical\u002Fperformance","billconan",[204,39,43,205,206,39],"21952294","project\u002Fneutral\u002Fperformance","j1elo",[184,39,39,208,11,34],"project\u002Fpositive\u002Fperformance",[210,39,43,205,206,39],"21952541",[187,39,39,212,11,34],"maker\u002Fneutral\u002Fperformance",[214,39,47,215,216,39],"21952719","maker\u002Fpositive\u002Fperformance","mo1ok",[218,39,39,219,220,39],"21952720","other\u002Fneutral\u002Fnone","vasilvv",[123,39,34,222,124,39],"project\u002Fcritical\u002Fprivacy",[224,39,39,225,11,34],"21953329","project\u002Fneutral\u002Fprivacy",[127,39,34,222,124,39],[228,39,34,229,230,39],"21953600","project\u002Fcritical\u002Fdesign","kabes",[101,39,47,196,102,39],[233,39,39,196,11,34],"21953342",[158,34,39,219,159,39],[236,34,39,219,206,39],"21952344",[238,34,43,198,239,39],"21952429","mdonahoe",[241,34,39,219,242,39],"21952940","kolencherry",[244,34,39,198,11,34],"21953256",[93,40,43,246,94,39],"project\u002Fneutral\u002Fdesign",[55,40,39,198,11,34],[116,40,34,229,117,39],[138,43,43,250,139,39],"project\u002Fmixed\u002Fdesign",[82,43,39,246,11,34],[253,43,34,254,139,39],"21954199","project\u002Fcritical\u002Fexecution",[256,43,34,254,139,39],"21960324",[258,43,39,198,11,34],"21965830",[260,43,39,261,262,39],"21954943","commenter\u002Fneutral\u002Fnone","cyanide911",[264,43,39,261,139,39],"21957204",[266,267,47,196,239,39],"21952434",4,[269,47,43,198,270,39],"21960731","ptsneves",[272,191,43,246,273,39],"21952336","Riverheart",[275,191,39,276,11,34],"21952414","project\u002Fpositive\u002Fnone",[278,191,47,196,273,39],"21952471",[280,18,47,281,282,39],"21952145","project\u002Fpositive\u002Fidea","roberte3",[284,18,39,196,11,34],"21952717",[174,33,39,219,175,39],[287,32,34,254,288,39],"21955009","pjmlp",[108,290,47,281,109,39],10,[292,293,43,294,175,39],"21954542",11,"maker\u002Fneutral\u002Fdocs",[296,297,39,298,299,39],"21956071",12,"other\u002Fpositive\u002Fnone","tincholio",[301,178,47,196,302,39],"21952353","dysoncdn",[304,178,39,198,11,34],"21952513",[146,306,43,307,147,39],14,"project\u002Fneutral\u002Fdocs",[58,306,39,309,11,34],"project\u002Fpositive\u002Fdocs",[311,306,47,196,147,39],"21952566",[],[314,318,323,328,332,336],{"id":315,"name":316,"points":317,"category":20},"21991382","Beef",533,{"id":319,"name":320,"points":321,"category":322},"21934247","Confusing Coleopterists",308,"ai",{"id":324,"name":325,"points":326,"category":327},"21981158","jql",217,"dev_tools",{"id":329,"name":330,"points":331,"category":327},"21958986","Terrastruct",187,{"id":333,"name":334,"points":335,"category":20},"21948472","sscaffold-css",158,{"id":337,"name":338,"points":339,"category":340},"21932381","DiscoTask",126,"productivity",19,false,"v2",{"id":345,"name":5,"line":6,"ai":342,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":346,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":347,"url":9,"mix":348,"praise":90,"objection":113,"sub":21},21951692,[24,25,26,27,28],"5013035010130003030130100053355001505035",[32,33,34,33],1794036585108]