All Projects → propensive → adversaria

propensive / adversaria

Licence: Apache-2.0 license
Typeclass interfaces to access user-defined Scala annotations

Programming Languages

scala
5932 projects
shell
77523 projects

Projects that are alternatives of or similar to adversaria

soap-typescript
SOAP decorators for creating wsdl's and annotating services to provide metadata for node-soap
Stars: ✭ 20 (-9.09%)
Mutual labels:  annotations
FlowLayout
Android流式布局实现热门标签效果
Stars: ✭ 65 (+195.45%)
Mutual labels:  tags
Symfony-4-by-Samples
Symfony 4 by Samples is a personal project in which I will be creating small demos with tutorial in which to learn the symfony framework 4. Each of the samples contains a README.md file that indicates the purpose of the sample plus an step by step guide to reproduce it. Basic topics, login and register form, authentication, webpack encore, sass…
Stars: ✭ 40 (+81.82%)
Mutual labels:  annotations
catnip
Static annotations for Kittens for people who don't like to write semiautomatic derivations into companion objects themselves.
Stars: ✭ 38 (+72.73%)
Mutual labels:  annotations
ClassifyCNV
ClassifyCNV: a tool for clinical annotation of copy-number variants
Stars: ✭ 33 (+50%)
Mutual labels:  annotations
additional tags
Redmine Plugin for adding tags functionality to issues and wiki pages.
Stars: ✭ 25 (+13.64%)
Mutual labels:  tags
Exact
An open source online platform for collaborative image labeling of almost everything
Stars: ✭ 47 (+113.64%)
Mutual labels:  annotations
ScoutAR
Augmented reality app displays nearby restaurant information in a live camera and map view.
Stars: ✭ 28 (+27.27%)
Mutual labels:  annotations
php-simple-request
php-simple-request is a request parser library designed to simplify requests validation and filtering using annotations, generating at the same time an object representation from the request data.
Stars: ✭ 15 (-31.82%)
Mutual labels:  annotations
SimpleVideoAnnotation
A simple video annotation made with python + OpenCV for detection in YoloV2 format
Stars: ✭ 13 (-40.91%)
Mutual labels:  annotations
FlowlayoutTags
具有标签功能的流式布局,接口简单。可多选单选,可记住选择状态,状态切换有过渡动画。
Stars: ✭ 78 (+254.55%)
Mutual labels:  tags
cocktail
Traits, Talents & Annotations for NodeJS.
Stars: ✭ 65 (+195.45%)
Mutual labels:  annotations
bootstrap5-tags
Replace select[multiple] with nices badges for Bootstrap 5
Stars: ✭ 58 (+163.64%)
Mutual labels:  tags
wp-tag-order
↕︎ Sort tags manually in individual posts (not site-globally) on WordPress.
Stars: ✭ 16 (-27.27%)
Mutual labels:  tags
material-chip-view
Material Chip view. Can be used as tags for categories, contacts or creating text clouds
Stars: ✭ 1,300 (+5809.09%)
Mutual labels:  tags
terraform-modules
Terraform Modules by Peak
Stars: ✭ 16 (-27.27%)
Mutual labels:  tags
AUXify
Introduces macro/meta annotations @ aux, @ self, @ instance, @ apply, @ delegated, @ syntax and String-based type class LabelledGeneric
Stars: ✭ 25 (+13.64%)
Mutual labels:  typeclass
svg-tag-mode
A minor mode for Emacs that replace keywords with nice SVG labels
Stars: ✭ 314 (+1327.27%)
Mutual labels:  tags
etiketai
Etiketai is an online tool designed to label images, useful for training AI models
Stars: ✭ 63 (+186.36%)
Mutual labels:  annotations
com2ann
Tool for translation type comments to type annotations in Python
Stars: ✭ 115 (+422.73%)
Mutual labels:  annotations

GitHub Workflow

Adversaria

Adversaria is a tiny library which provides a few tools to make it easier to work with static annotations in Scala, by making them available through typeclass interfaces.

Features

  • access all annotations on a type through a typeclass
  • resolve a typeclass instance only if a type has an annotated field
  • makes annotations more useful and accessible in Scala
  • no macro code is required to use annotations

Availability

The current latest release of Adversaria is 0.4.0.

Getting Started

The nature of annotations in Scala is that they are very rarely the best solution for any task, but can be convenient in certain circumstances, and this small domain is where Adversaria aims to help.

Currently three use cases are supported:

  • getting all the annotations applied to a particular type
  • finding the parameter of a case class to which a particular annotation has been applied
  • getting all the annotations applied to a particular case class field

The list of supported use cases may grow.

Examples

If we were to define the following annotations,

import scala.annotation.StaticAnnotation

final case class id() extends StaticAnnotation
final case class count(n: Int) extends StaticAnnotation

we could apply them to some case classes, such as,

@count(10)
case class Company(name: String)

case class Person(name: String, @id email: String)

Related Projects

The following Scala One libraries are dependencies of Adversaria:

Rudiments  

No other Scala One libraries are dependents of Adversaria.

Status

Adversaria is classified as fledgling. Propensive defines the following five stability levels for open-source projects:

  • embryonic: for experimental or demonstrative purposes only, without any guarantees of longevity
  • fledgling: of proven utility, seeking contributions, but liable to significant redesigns
  • maturescent: major design decisions broady settled, seeking probatory adoption and refinement
  • dependable: production-ready, subject to controlled ongoing maintenance and enhancement; tagged as version 1.0 or later
  • adamantine: proven, reliable and production-ready, with no further breaking changes ever anticipated

Adversaria is designed to be small. Its entire source code currently consists of 92 lines of code.

Building

Adversaria can be built on Linux or Mac OS with Irk, by running the irk script in the root directory:

./irk

This script will download irk the first time it is run, start a daemon process, and run the build. Subsequent invocations will be near-instantaneous.

Contributing

Contributors to Adversaria are welcome and encouraged. New contributors may like to look for issues marked label: good first issue.

We suggest that all contributors read the Contributing Guide to make the process of contributing to Adversaria easier.

Please do not contact project maintainers privately with questions. While it can be tempting to repsond to such questions, private answers cannot be shared with a wider audience, and it can result in duplication of effort.

Author

Adversaria was designed and developed by Jon Pretty, and commercial support and training is available from Propensive OÜ.

Name

Adversaria are miscellaneous collections of notes or annotations, after which the library is named.

License

Adversaria is copyright © 2019-22 Jon Pretty & Propensive OÜ, and is made available under the Apache 2.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].