vishalsodani / ogma

Scripting language focused on processing tabular data.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ogma

Welcome to the ogma project! ogma is a scripting language focused on ergonomically and efficiently processing tabular data, with batteries included. Mixing aspects of terminal shells and functional programming, the ogma project lets one interact with data in a refreshing way. The language is syntactically lightweight yet boasts powerful constructs designed to efficiently work with tabular data.

Getting Started

Language Characteristics

ogma takes inspiration from multiple sources. For the semantics, programming languages Rust, Haskell, ML, and Elm have all been an influence, while the syntax is derived primarily from terminal shells (with smatterings from other languages). Some major characteristics of ogma are:

  • small language with few keywords and opting for a prefix notation,
  • uses pipelines to chain together commands, composing their effects,
  • it is strictly typed,
  • can be extended with user-defined implementations and types.

Development and Support

The ogma project needs development and financial support to help keep the project growing. Financial support in the form of sponsorship is greatly appreciated, helping us spend more time on the project. The project is also open source, hosted on Github. Contributions are encouraged, not just for features but important aspects such as bug fixes and documentation. There is also a forum in which to ask and answer questions. The forum is a great way to cultivate a community around the project and it is encouraged to participate.

Contributions

Pull requests are appreciated and encouraged! The request will be subject to a review and will need to pass the CI before being merged in. Please ensure:

  • Tests are added where necessary,
  • cargo fmt -- --check passes,
  • cargo clippy -- -D warnings passes,
  • cargo test passes,
  • An item describing your pull request is added to RELEASE.md.

Happy coding!

Release Process

When a release is ready, simply create a release tag and push it to Github. The release workflow will take care of the build and release creation. The release body uses RELEASE.md as the release notes. Be sure to update this before the tag push!

# Update RELEASE.md
git push
git tag v#.#
git push origin v#.#

About

Scripting language focused on processing tabular data.

License:MIT License


Languages

Language:Rust 100.0%