# CANdid Server A server that faciliates connections between remote TCP clients and a local CAN bus. Clients are sent frames read off the bus, and may send frames back to the server that are then written to the bus. Repository: https://gitlab.com/avandesa/candid-rs Documentation: https://docs.rs/crate/candid_server/ ## Getting Started ### Prerequisites Because the server uses the [socketcan](https://crates.io/crates/socketcan) crate, a wrapper for the Linux SocketCAN kernel module, the server can only run on a Linux system with the relevant modules compiled and loaded. ### Installing To install the server: ``` $ cargo install candid_server ``` To run the server on a `vcan0` interface and `localhost`: ``` # modprobe can can_raw vcan # ip link add dev vcan0 type vcan # ip link set up vcan0 $ candid_server 127.0.0.1:6556 vcan0 ``` Use [candid_client](https://crates.io/crates/candid_client) to connect to the server. There are examples [in the repository](https://gitlab.com/avandesa/candid-rs) for both sending and receiving frames. ## Built With * [SocketCAN](https://www.kernel.org/doc/html/v4.16/networking/can.html) - The underlying kernel module. * [socketcan Crate](https://crates.io/crates/socketcan) - Rust bindings for the C library. * [clap](https://crates.io/crates/clap) - For command line argument parsing. * [byteorder](https://crates.io/crates/byteorder) - For writing frames ## Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://gitlab.com/avandesa/candid-rs/tags). ## Authors * **Alex van de Sandt** - [avandesa](https://gitlab.com/avandesa) ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details