https://github.com/gallandarakhneorg/afc
Arakhnê Foundation Classes
https://github.com/gallandarakhneorg/afc
Last synced: 7 months ago
JSON representation
Arakhnê Foundation Classes
- Host: GitHub
- URL: https://github.com/gallandarakhneorg/afc
- Owner: gallandarakhneorg
- License: apache-2.0
- Created: 2013-04-27T12:49:55.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-11-07T14:05:21.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T21:46:31.184Z (12 months ago)
- Language: Java
- Homepage: http://www.arakhne.org/afc/
- Size: 19.4 MB
- Stars: 14
- Watchers: 4
- Forks: 8
- Open Issues: 12
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
= Arakhnê Foundation Classes
:toc: right
:toc-placement!:
:hide-uri-scheme:The Arakhnê Foundation Classes (AFC) is a collection of Java libraries that may be used to build applications. The Arakhnê Foundation Classes provide tools that are not directly available in the standard Java API.
image:https://img.shields.io/badge/requires-Java%2011-red.svg?style=flat-square[link=https://www.java.com]
image:https://img.shields.io/maven-central/v/org.arakhne.afc/afc.svg?label=Maven%20Central[link=http://search.maven.org/#search%7Cga%7C1%7Corg.arakhne.afc]
image:https://travis-ci.com/gallandarakhneorg/afc.svg?branch=master[link=https://travis-ci.com/gallandarakhneorg/afc]
image:https://ci.appveyor.com/api/projects/status/github/gallandarakhneorg/afc?branch=master&svg=true[link=https://ci.appveyor.com/project/gallandarakhneorg/afc]image:https://img.shields.io/badge/compliant-Maven-yellowgreen.svg?style=flat-square[link=http://maven.apache.org]
image:https://img.shields.io/badge/compliant-Java-yellowgreen.svg?style=flat-square[link=https://www.java.com]
image:https://img.shields.io/badge/compliant-SARL-yellowgreen.svg?style=flat-square[link=http://sarl.io]
image:https://img.shields.io/badge/compliant-Scala-yellowgreen.svg?style=flat-square[link=http://scala-lang.org]
image:https://img.shields.io/badge/compliant-Xtext-yellowgreen.svg?style=flat-square[link=https://eclipse.org/Xtext]
image:https://img.shields.io/badge/compliant-Xtend-yellowgreen.svg?style=flat-square[link=https://eclipse.org/Xtext]
image:https://img.shields.io/badge/compliant-OSGI-yellowgreen.svg?style=flat-square[link=https://www.osgi.org]image:https://img.shields.io/github/license/gallandarakhneorg/afc.svg?style=flat-square[link=https://opensource.org/licenses/Apache-2.0]
image:https://cla-assistant.io/readme/badge/gallandarakhneorg/afc[link=https://cla-assistant.io/gallandarakhneorg/afc]toc::[]
== 1. Content of the AFC
=== 1.1. Maintained Modules
AFC library contains the several maintained modules: geometry utilities, geographical information framework, etc.
See link:http://arakhne.org/afc/[Arakhne.org] for details.=== 1.2. Deprecated and Dead Modules
AFC library contains the deprecated modules (deprecated modules are subject to removal in future version).
See link:http://arakhne.org/afc/[Arakhne.org] for details.=== 1.3 Compatibility with other Languages than Java
AFC is a Java library that provides extensions for being used with other programming languages.
For example, link:http://arakhne.org/afc/apidocs/index.html?org/arakhne/afc/math/geometry/d2/Vector2D.html[Vector2D] provides overloading function for operator `+`. In this way, this operator may be used by typing `v1 + 1` instead of `v1.add(1)`.
==== 1.3.1 SARL agent-oriented programming language
AFC library is compatible with the link:http://www.sarl.io[SARL] agent-oriented programming language, which is a Xtext-based language (see below).
Indeed, the AFC classes use the specific annotations: `@Pure` for making link:https://en.wikipedia.org/wiki/Pure_function[pure functions], and `@Inline` for link:https://en.wikipedia.org/wiki/Inline_function[inline functions]. AFC also provides the overridings of the operators (`operator_plus`, `operator_minus`, etc.) for vectors, matrices, etc.==== 1.3.2 Scala object-oriented programming language
AFC library is compatible with the link:http://scala-lang.org[Scala] object-oriented programming language.
Indeed, the AFC classes provide the overridings of the operators (`$plus`, `$minus`, etc.) for vectors, matrices, etc.==== 1.3.3 Xtend object-oriented programming language
AFC library is compatible with the link:https://www.eclipse.org/xtend/[Xtend] object-oriented programming language, which is a Xtext-based language (see below).
Indeed, the AFC classes use the specific annotations: `@Pure` for making link:https://en.wikipedia.org/wiki/Pure_function[pure functions], and `@Inline` for [inline functions](https://en.wikipedia.org/wiki/Inline_function)). AFC also provides the overridings of the operators (`operator_plus`, `operator_minus`, etc.) for vectors, matrices, etc.==== 1.3.4 Other Xtext-base languages
AFC library is compatible with all the languages that are defined upon the link:https://www.eclipse.org/Xtext/[Xtext] framework for development of programming languages and domain-specific languages.
Indeed, the AFC classes use the specific annotations: `@Pure` for making link:https://en.wikipedia.org/wiki/Pure_function[pure functions], and `@Inline` for link:https://en.wikipedia.org/wiki/Inline_function[inline functions]. AFC also provides the overridings of the operators (`operator_plus`, `operator_minus`, etc.) for vectors, matrices, etc.== 2. Requirements
For AFC version 17.0 or higher:
* Java Development Toolkit (JDK) 11 or higher.
For AFC prior to version 17.0:
* Java Development Toolkit (JDK) 8.
== 3. Using AFC
=== 3.1. Recommendations
For making your experience with AFC the best, we recommend you:
* *to enable the assertions at development time (with the `-ea` command line option).*
=== 3.2. Use the stable version with Maven
The lastest stable version of AFC is available on link:http://search.maven.org/[Maven Central].
Consequently, you could directly include the AFC module that you want to use into the Maven dependencies of your project.
For example, if you want to use the "vmutils" module:```xml
...
org.arakhne.core
vmutils
13.0
...
```Please, replace Version `12.0` in the previous snipset by the number of the version you want to use (`12.0` is the first version that is available on Maven Central).
=== 3.3. Use of the development version with Maven
New features, enhancements and bug fixes are available in the SNAPSHOT (development) version of AFC.
For using this version, you must add the Maven Repository Server of AFC in your pom file:```xml
...
org.arakhne.core
vmutils
14.0-SNAPSHOT
...
org.arakhne-maven
Arakhnê.org Snapshots
http://download.tuxfamily.org/arakhne/maven/
org.arakhne-maven
Arakhnê.org Snapshots
http://download.tuxfamily.org/arakhne/maven/
true
...
```== 4. P2 Repository
A P2 repository is set up and accesible at the address: `http://download.tuxfamily.org/arakhne/p2`.
The bundles that are available on this P2 repository are:
[cols="3,1,1", options="header"]
|===
| Name
| Id
| Version| Mockito and related dependencies
| org.mockito-core
| 20.0.64.beta
|===== 5. Issues
Issues related to the AFC are tracked on link:https://github.com/gallandarakhneorg/afc/issues[GitHub]
You must use this issue tracker to report and follow your issues.== 6. Contributions
Any contribution to the AFC library is welcome.
See [CONTRIBUTING](./CONTRIBUTING.md) file for details.== 7. Authors
* image:https://avatars.githubusercontent.com/anonymous[width="50px"] Marc BAUMGARTNER, author of copied source code.
* image:https://avatars.githubusercontent.com/anonymous[width="50px"] Christophe BOHRHAUER, link:http://www.utbm.fr/[UTBM] student developer, math module.
* image:https://avatars.githubusercontent.com/gallandarakhneorg[width="50px",link=https://github.com/gallandarakhneorg] link:http://www.arakhne.org/homes/galland.html[Stéphane GALLAND], founder, original and active author.
* image:https://avatars.githubusercontent.com/ngaud[width="50px",link=https://github.com/ngaud] link:http://www.multiagent.fr/People:Gaud_nicolas[Nicolas GAUD], senior developer, math module.
* image:https://avatars.githubusercontent.com/MaximeGrolleau[width="50px",link=https://github.com/MaximeGrolleau] Maxime GROLLEAU, link:http://www.utbm.fr/[UTBM] student developer, math module.
* image:https://avatars.githubusercontent.com/anonymous[width="50px"] Mahdi HANNOUN, founder, original and former author.
* image:https://avatars.githubusercontent.com/cheikh35[width="50px",link=https://github.com/cheikh35] Hamza JAFFALI, link:http://www.utbm.fr/[UTBM] student developer, math module.
* image:https://avatars.githubusercontent.com/olivierlamotte[width="50px",link=https://github.com/olivierlamotte] link:http://www.multiagent.fr/People:Lamotte_olivier[Olivier LAMOTTE], senior developer, vmutil and math modules.
* image:https://avatars.githubusercontent.com/devFozgul[width="50px",link=https://github.com/devFozgul] Fevzi OZGUL, senior developer, cleaning and optimization.
* image:https://avatars.githubusercontent.com/tpiotrow[width="50px",link=https://github.com/tpiotrow] Thomas PIOTROWSKI, link:http://www.utbm.fr/[UTBM] student developer, math module.
* image:https://avatars.githubusercontent.com/anonymous[width="50px"] Yuku SUGIANTO, author of copied source code.
* image:https://avatars.githubusercontent.com/anonymous[width="50px"] Alexandre WILLAUME, link:http://www.utbm.fr/[UTBM] junior developer, vmutil module.== 8. License of AFC
The Arakhnê Foundation Classes are distributed under the link:./LICENSE[Apache v2 license], and is copyrigthed to the original authors and the other authors, as expressed in the link:./NOTICE[NOTICE].
== 9. Success Stories
The following projects have sucessfully used a module of the AFC:
* link:http://www.sarl.io[SARL agent-programming language]
* link:https://github.com/gallandarakhne.org/jaak[Jaak Simulation Library]
* link:http://www.janusproject.io[Janus agent platform]
* link:http://www.multiagent.fr/MultiAgentWiki:MetroB[Metro-B]
* link:http://www.multiagent.fr/MultiAgentWiki:SARTRE[SARTRE]
* link:http://www.arakhne.org/neteditor[NetEditor]
* link:http://www.multiagent.fr/MultiAgentWiki:FLO[FLO Train Simulator]