{"guid":"fc1e2aee-7cea-4633-944e-66cf3533cefd","title":"What's so hard about writing a Slack client in Rust?","subtitle":null,"slug":"rustcgn.2017.03.slack","link":"https://c3voc.de","description":"“I’ll just write a simple API wrapper for that. Give me two hours.” Does that sound oddly familiar? Don’t be fooled: writing an easy to use, idiomatic abstraction layer is a lot of work - in any language. I want to tell you my story about writing a Slack client in Rust. From documentation to testing and error handling there’s a lot of pitfalls to avoid and laughs to share.","original_language":"eng","persons":["Matthias Endler"],"view_count":375,"promoted":false,"date":"2017-03-01T00:00:00.000+01:00","release_date":"2017-03-02T01:00:00.000+01:00","updated_at":"2026-04-20T06:15:03.384+02:00","tags":["rustcgn","17031"],"length":2265,"duration":2265,"thumb_url":"https://static.media.ccc.de/media/events/rustmcb/17031-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/rustmcb/17031-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/rustmcb/fc1e2aee-7cea-4633-944e-66cf3533cefd-timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/rustmcb/fc1e2aee-7cea-4633-944e-66cf3533cefd-thumbnails.vtt","frontend_link":"https://media.ccc.de/v/rustcgn.2017.03.slack","url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_title":"Rust Cologne","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb","related":[{"event_id":2944,"event_guid":"5fb6f7b5-c237-4b64-b786-85e4c95f13ad","weight":4},{"event_id":3110,"event_guid":"b7935ff9-54e1-4b97-9ce4-1febd50e6f82","weight":6},{"event_id":3111,"event_guid":"f5dd54b0-b67b-4024-a25e-eb941aeb89aa","weight":12},{"event_id":3112,"event_guid":"c01432ad-d78f-4e16-9e19-22469af9050a","weight":12},{"event_id":3498,"event_guid":"3cd1ad54-bede-444f-9339-9ed86e1836f6","weight":17},{"event_id":3499,"event_guid":"f5f638dd-fccc-460c-8829-38f69f872ada","weight":5},{"event_id":3563,"event_guid":"0bf48766-2a96-4c65-bc82-54c490c5c4e3","weight":6},{"event_id":3633,"event_guid":"530f0400-e4e8-4d99-909d-4cfc8121c0b0","weight":4},{"event_id":3640,"event_guid":"700a07e7-a9c4-437b-a4c5-4491b23a9b4a","weight":8},{"event_id":3689,"event_guid":"1f7eb981-2819-4824-8f40-4ddde0be7bf3","weight":6},{"event_id":3782,"event_guid":"dec1ddb6-e4f3-11e6-ba49-a38509dc3679","weight":7},{"event_id":3783,"event_guid":"f31ced73-ec4f-4138-948e-0c2803af21de","weight":6},{"event_id":3784,"event_guid":"454751e0-fd42-11e6-b7aa-174b5fe37b07","weight":12},{"event_id":3786,"event_guid":"9f730bc5-eb12-44e0-94e7-a65fd86490d9","weight":39},{"event_id":3968,"event_guid":"24923407-2fd3-4042-bc94-dd42083d5c1a","weight":8},{"event_id":3986,"event_guid":"ff2bf44f-3417-5914-a017-9777087662f7","weight":6},{"event_id":5065,"event_guid":"b13b7d07-a781-4777-ac11-c331a204e710","weight":7},{"event_id":5727,"event_guid":"702996dd-0853-4d00-81e2-3e39cae19500","weight":5}],"recordings":[{"length":2265,"mime_type":"video/mp4","language":"eng","filename":"rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2017-03-02T01:21:50.684+01:00","label":"eng 1080p","size":149,"recording_url":"https://cdn.media.ccc.de/events/rustmcb/h264-hd/rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_hd.mp4","url":"https://api.media.ccc.de/public/recordings/15082","event_url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb"},{"length":2265,"mime_type":"video/mp4","language":"eng","filename":"rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2017-03-02T02:08:34.779+01:00","label":"eng 576p","size":62,"recording_url":"https://cdn.media.ccc.de/events/rustmcb/h264-sd/rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_sd.mp4","url":"https://api.media.ccc.de/public/recordings/15084","event_url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb"},{"length":2265,"mime_type":"video/webm","language":"eng","filename":"rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2017-03-02T02:11:01.817+01:00","label":"eng 576p","size":68,"recording_url":"https://cdn.media.ccc.de/events/rustmcb/webm-sd/rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/15085","event_url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb"},{"length":2259,"mime_type":"audio/mpeg","language":"eng","filename":"rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2017-03-02T02:13:07.357+01:00","label":"eng","size":35,"recording_url":"https://cdn.media.ccc.de/events/rustmcb/mp3/rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust.mp3","url":"https://api.media.ccc.de/public/recordings/15086","event_url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb"},{"length":2259,"mime_type":"audio/opus","language":"eng","filename":"rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2017-03-02T02:13:50.703+01:00","label":"eng","size":28,"recording_url":"https://cdn.media.ccc.de/events/rustmcb/opus/rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust.opus","url":"https://api.media.ccc.de/public/recordings/15087","event_url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb"},{"length":2265,"mime_type":"video/webm","language":"eng","filename":"rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2017-03-02T03:58:29.968+01:00","label":"eng 1080p","size":194,"recording_url":"https://cdn.media.ccc.de/events/rustmcb/webm-hd/rustcgn-17031-eng-Whats_so_hard_about_writing_a_Slack_client_in_Rust_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/15092","event_url":"https://api.media.ccc.de/public/events/fc1e2aee-7cea-4633-944e-66cf3533cefd","conference_url":"https://api.media.ccc.de/public/conferences/rustmcb"}]}