Crates.io | civil |
lib.rs | civil |
version | 0.1.7 |
source | src |
created_at | 2019-02-06 04:25:50.33478 |
updated_at | 2019-06-24 00:38:53.729934 |
description | a library to support civil engineering applications (WIP) |
homepage | https://github.com/skreimeyer/civil |
repository | https://github.com/skreimeyer/civil |
max_upload_size | |
id | 113021 |
size | 458,666 |
This is a work in progress
This is on hiatus
This package is meant to provide solutions to common civil engineering problems. Everything is very much a work in progress. Ideally, on maturity, this library should support developers interested in making applications that assist with tasks like determining the geometric design of streets, sizing culverts and basic economic analysis for construction projects. The ultimate goal is to have a simple API for common civil engineering design equations so that an application developer can focus more on application-specific implementation rather than on researching methods.
A good example of the intended effect would be if a web developer could write a short function in Rust that uses this API to, say, calculate the flow of water in an open channel given channel dimensions and roughness, then compile that to WASM and call that function from JS with user inputs to produce a graphical representation of the channel in a <canvas></canvas>
element. Another good use case would be the functions in this library being used to support a module or extension in a CAD suite.
The aim of Civil is to be comprehensive enough to be useful, but simple enough to be flexible. Consequently, complex tasks, like reading in digital elevation models, delineating watersheds and transforming geometric objects to be written to some very vendor-specific file types (I'm looking at you .DWG) is out of scope for this project.
Why this library?
Why make a library at all?
Why Rust?
Checklist:
Checklist:
Checklist:
There is basically no aspect of this project where contribution isn't welcomed. If you see a gap in the code, make a pull request. I'm not a professional developer, so if you see some pretty obvious meta-programming faux pax, bring it up.
Things this project needs:
What if I don't know anything about civil engineering?
There are some excellent texts that thoroughly list most of the functions appropriate for this library. You don't necessarily need to fully understand their context and usage as long as you can translate an equation into rust with sensible inputs and outputs.
The Do's:
The Dont's: