{"action":"created","issue":{"url":"https://api.github.com/repos/japaric/embedded-rust/issues/1","repository_url":"https://api.github.com/repos/japaric/embedded-rust","labels_url":"https://api.github.com/repos/japaric/embedded-rust/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/japaric/embedded-rust/issues/1/comments","events_url":"https://api.github.com/repos/japaric/embedded-rust/issues/1/events","html_url":"https://github.com/japaric/embedded-rust/pull/1","id":179935392,"number":1,"title":"[RFC] The embedded Rust initiative: Scope","user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/japaric/embedded-rust/labels/meta","name":"meta","color":"1d76db"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":10,"created_at":"2016-09-29T02:05:19Z","updated_at":"2016-09-30T05:39:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/japaric/embedded-rust/pulls/1","html_url":"https://github.com/japaric/embedded-rust/pull/1","diff_url":"https://github.com/japaric/embedded-rust/pull/1.diff","patch_url":"https://github.com/japaric/embedded-rust/pull/1.patch"},"body":"Hello!\r\n\r\nI'm a Rustacean that wants to see Rust become a great language and ecosystem for embedded projects (but I'm sure I'm not the only one!).\r\n\r\nThis repository is an attempt at mobilizing efforts towards that goal and this RFC ([rendered](https://github.com/japaric/embedded-rust/blob/scope/text/0000-scope.md)) defines the scope and contents of this repository.\r\n\r\nI'd love to hear your thoughts about this RFC. Also, I'll soon be opening more issues about the \"obstacles\" (term defined in the RFC) that I see right now and it'd be great if you can participate in the discussion about those as well.\r\n\r\n---\r\n \r\ncc-ing people that may be interested. Apologies if you are not! You can unsubscribe from this issue by clicking the unsubscribe button on the right side of this page.\r\n\r\n## \"Arduino\" sub-ecosystem\r\n\r\n@SimonSapin\r\n@alevy\r\n@cbiffle\r\n@cwoodall\r\n@hackndev\r\n\r\n## \"OpenWRT\" sub-ecosystem\r\n\r\n@Manishearth (as a proxy :smile:. IIRC, you know people who are interested in Rust+OpenWRT)\r\n@kteza1\r\n\r\n## \"Raspberry Pi\" sub-ecosystem\r\n\r\n@posborne\r\n\r\n---\r\n\r\nAlso, cc @alexcrichton, @aturon and @nikomatsakis. This repository could become a valuable source of information about the needs of embedded developers."},"comment":{"url":"https://api.github.com/repos/japaric/embedded-rust/issues/comments/250663009","html_url":"https://github.com/japaric/embedded-rust/pull/1#issuecomment-250663009","issue_url":"https://api.github.com/repos/japaric/embedded-rust/issues/1","id":250663009,"user":{"login":"posborne","id":41714,"avatar_url":"https://avatars.githubusercontent.com/u/41714?v=3","gravatar_id":"","url":"https://api.github.com/users/posborne","html_url":"https://github.com/posborne","followers_url":"https://api.github.com/users/posborne/followers","following_url":"https://api.github.com/users/posborne/following{/other_user}","gists_url":"https://api.github.com/users/posborne/gists{/gist_id}","starred_url":"https://api.github.com/users/posborne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/posborne/subscriptions","organizations_url":"https://api.github.com/users/posborne/orgs","repos_url":"https://api.github.com/users/posborne/repos","events_url":"https://api.github.com/users/posborne/events{/privacy}","received_events_url":"https://api.github.com/users/posborne/received_events","type":"User","site_admin":false},"created_at":"2016-09-30T05:39:21Z","updated_at":"2016-09-30T05:39:21Z","body":"I think the main cross-cutting concern for \"embedded systems\" is that of dealing with hardware.  The method for interacting with hardware resources can be decomposed into a few basic categories (as I see it).  These categories are a little different from what has been previously proposed:\r\n\r\n* **Userspace Embedded:** Typically, this type of hardware control is done within the context of embedded linux systems, but it could apply for FreeBSD or other OS's.  The common characteristc for this category is that access to hardware is done via a well-defined, cross-hardware manner via kernel APIs.  The interface here looks the same if the target system has a lot of resources or only a few.  The `std` crate is usually an option in these environments.\r\n* **Bare Metal/RTOS Embedded:** In these systems, hardware control typically involves more direct interaction with hardware registers in order to control hardware.  Although some APIs may be present systems in this space typically need to define both the hardware abstraction layer as well as the application logic built on that HAL.\r\n* **Embedded Kernel:** Between these two worlds is the world of kernel development.  Part of the job of a kernel has to do with defining abstractions for controlling hardware and in that sense it is very different from embedded development.  Kernels will not typically define the application logic and in that sense are different than many complete embedded solutions.  Sufficiently large bare metal projects frequently start to look very much like kernel development projects at some level.\r\n\r\nMuch of the work I have done professionally has been in the userspace embedded (in Rust and other languages) and Linux kernel development (no Rust OS dev for me yet).  I have done some work on bare metal (including work on Zinc) as well.\r\n\r\nFrom my perspective I don't think the differences between distros like debian/fedora on a RPi and things like OpenWRT/Yocto on custom hardware are too relevant to the language story for rust embedded.  There are important projects that need to go on to make Rust easier in various environments (e.g. https://github.com/meta-rust/meta-rust / https://github.com/rust-embedded/meta-rust-bin) but that concern seems orthogonal."}}
{"actor":{"display_login":"posborne"}}