Para alternatives and similar software solutions
Based on the "Misc/Other" category.
Alternatively, view Para alternatives based on common mentions on social networks and blogs.
-
MindsDB
AI's query engine - Platform for building AI that can learn and answer questions over large scale federated data. -
CyberChef
The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis -
changedetection.io
The best and simplest free open source web page change detection, website watcher, restock monitor and notification service. Restock Monitor, change detection. Designed for simplicity - Simply monitor which websites had a text change for free. Free Open source web page change detection, Website defacement monitoring, Price change notification -
google-webfonts-helper
A Hassle-Free Way to Self-Host Google Fonts. Get eot, ttf, svg, woff and woff2 files + CSS snippets -
blynk
DISCONTINUED. Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes -
Reactive Resume
DISCONTINUED. A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today! [Moved to: https://github.com/AmruthPillai/Reactive-Resume] -
Ombi
DISCONTINUED. Want a Movie or TV Show on Plex or Emby? Use Ombi! [Moved to: https://github.com/Ombi-app/Ombi] -
cState
🔥 Open source static (serverless) status page. Uses hyperfast Go & Hugo, minimal HTML/CSS/JS, customizable, outstanding browser support (IE8+), preloaded CMS, read-only API, badges & more. -
Revive Adserver
The world's most popular free, open source ad serving system. You can download the latest release at: -
2FAuth
A Web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes -
COPS
Calibre OPDS (and HTML) PHP Server : web-based light alternative to Calibre content server / Calibre2OPDS to serve ebooks (epub, mobi, pdf, ...) -
Ulterius
DISCONTINUED. Ulterius is an open-source remote desktop software with lots of awesome functions. -
How Secure Is My Password
DISCONTINUED. Rather than just saying a password is "weak" or "strong", How Secure is My Password? lets your users know how long it would take someone to crack their password. -
DomainMOD
DomainMOD is an open source application written in PHP & MySQL used to manage your domains and other internet assets in a central location. DomainMOD also includes a Data Warehouse framework that allows you to import your web server data so that you can view, export, and report on your live data. -
Skygear
DISCONTINUED. Skygear - an open source serverless platform for modern secure app development -
visualCaptcha
visualCaptcha's Main Repo. This is a collection of all the different versions/repos of visualCaptcha. -
GeneWeb
GeneWeb is a free (as in free speech) genealogy software with a web interface created by Daniel de Rauglaudre. -
MalwareMultiScan
DISCONTINUED. Self-hosted VirusTotal / MetaDefender wannabe with API, demo UI and Scanners running in Docker. -
Anchr
⚓️ Anchr provides you with a toolbox for tiny tasks on the internet, especially bookmark collections -
AlertHub
AlertHub is a simple tool written with NodeJS to get alerted from new GitHub and GitLab repository events. -
Digital-Currency
DISCONTINUED. Create your own Digital Currency with this self-hosted Web App. Check out the Demo website -
CrushPaper
Research the web for relevant sources, save them to CrushPaper and then combine them with your own insights into an article. -
Trello Burndown
An easy to use self-hosted SCRUM burndown chart for Trello boards. (Docker or binary)
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Para or a related project?
Popular Comparisons
README
A scalable, multitenant backend for the cloud.
Para is a scalable, multitenant backend server/framework for object persistence and retrieval. It helps you build and prototype applications faster by taking care of backend operations. It can be a part of your JVM-based application or it can be deployed as standalone, multitenant API server with multiple applications and clients connecting to it.
The name "pára" means "steam" in Bulgarian. And just like steam is used to power stuff, you can use Para to power your mobile or web application backend.
See how Para compares to other open source backend frameworks.
This project is fully funded and supported by Erudika - an independent, bootstrapped company.
Features
- RESTful JSON API secured with Amazon's Signature V4 algorithm
- Database-agnostic, designed for scalable data stores (DynamoDB, Cassandra, MongoDB, etc.)
- Full-text search (Lucene, Elasticsearch)
- Distributed and local object cache (Hazelcast, Caffeine)
- Multitenancy - each app has its own table, index and cache
- Webhooks with signed payloads
- Flexible security based on Spring Security (LDAP, SAML, social login, CSRF protection, etc.)
- Stateless client authentication with JSON Web Tokens (JWT)
- Simple but effective resource permissions for client access control
- Robust constraint validation mechanism based on JSR-303 and Hibernate Validator
- Per-object control of persistence, index and cache operations
- Support for optimistic locking and transactions (implemented by each
DAO
natively) - Advanced serialization and deserialization capabilities (Jackson)
- Full metrics for monitoring and diagnostics (Dropwizard)
- Modular design powered by Google Guice and support for plugins
- I18n utilities for translating language packs and working with currencies
- Standalone executable JAR with embedded Jetty
- Para Web Console - admin user interface
Architecture
+----------------------------------------------------------+
| ____ ___ _ ____ ___ _ |
| / __ \/ / ___/ __
/ |
| / // / // / / / /_/ / |
| / ./_,// _,/ +-------------+
| /_/ | Persistence |
+-------------------+ +-----------------+ +-------------+
| REST API | | Search |---| Cache |
+---------+---------+--+--------+--------+---+------+------+
| | |
+---------+---------+ +--------+--------+ +------+------+
| Signed Requests | | Search Index | | Data Store |
| and JWT Tokens | | (Any) | | (Any) |
+----+-------------+ +-----------------+ +-------------+
| |
+----v---------+-------------------------------------------+
| Clients : JavaScript, PHP, Java, C#, Android, iOS, etc. |
+----------------------------------------------------------+
Documentation
Read the Docs
Blog
Read more about Para on our blog
Hosting
We offer hosting and premium support at paraio.com where you can try Para online with a free developer account. Browse and manage your users and objects, do backups and edit permissions with a few clicks in the web console. By upgrading to a premium account you will be able to scale you projects up and down in seconds and manage multiple apps.
Quick Start
Create a configuration file application.conf
file in the same directory as the Para package.
Here's an example default configuration:
# the name of the root app
para.app_name = "Para"
# or set it to 'production'
para.env = "embedded"
# if true, users can be created without verifying their emails
para.security.allow_unverified_emails = false
# if hosting multiple apps on Para, set this to false
para.clients_can_access_root_app = true
# if false caching is disabled
para.cache_enabled = true
# root app secret, used for token generation, should be a random string
para.app_secret_key = "b8db69a24a43f2ce134909f164a45263"
# enable API request signature verification
para.security.api_security = true
# the node number from 1 to 1024, used for distributed ID generation
para.worker_id = 1
- Download the latest executable JAR
- Execute it with
java -jar -Dconfig.file=./application.conf para-*.jar
- Call
curl localhost:8080/v1/_setup
to get the access and secret keys for the root app (required) - Install
para-cli
tool for easy accessnpm install -g para-cli
(optional) - Create a new "child" app for regular use (optional):
# run setup and set endpoint to either 'http://localhost:8080' or 'https://paraio.com' $ para-cli setup $ para-cli new-app "myapp" --name "My App"
- Open Para Web Console or integrate with one of the API clients below.
The quickest way to interact with Para is through the command-line tool (CLI):
$ npm install -g para-cli
$ para-cli setup
$ para-cli ping
$ echo "{\"type\":\"todo\", \"name\": \"buy milk\"}" > todo.json
$ para-cli create todo.json --id todo1 --encodeId false
$ para-cli read --id todo1
$ para-cli search "type:todo"
Docker
Tagged Docker images for Para are located at erudikaltd/para
on Docker Hub.
It's highly recommended that you pull only release images like :1.39.0
or :latest_stable
because the :latest
tag can be broken or unstable.
First, create an application.conf
file in a directory and run this command:
$ docker run -ti -p 8080:8080 --rm -v para-data:/para/data \
-v $(pwd)/application.conf:/para/application.conf \
-e JAVA_OPTS="-Dconfig.file=/para/application.conf -Dloader.path=lib" erudikaltd/para:latest_stable
Environment variables
JAVA_OPTS
- Java system properties, e.g. -Dpara.port=8000
BOOT_SLEEP
- Startup delay, in seconds
Plugins
To use plugins, create a new Dockerfile-plugins
which does a multi-stage build like so:
# change X.Y.Z to the version you want to use
FROM erudikaltd/para:v1.XY.Z-base AS base
FROM erudikaltd/para-search-lucene:1.XY.Z AS search
FROM erudikaltd/para-dao-mongodb:1.XY.Z AS dao
FROM base AS final
COPY --from=search /para/lib/*.jar /para/lib
COPY --from=dao /para/lib/*.jar /para/lib
Then simply run $ docker build -f Dockerfile-plugins -t para-mongo .
Building Para
Para can be compiled with JDK 8+:
To compile it you'll need Maven. Once you have it, just clone and build:
$ git clone https://github.com/erudika/para.git && cd para
$ mvn install -DskipTests=true
To generate the executable "fat-jar" run $ mvn package
and it will be in ./para-jar/target/para-x.y.z-SNAPSHOT.jar
.
Two JAR files will be generated in total - the fat one is a bit bigger in size.
To build the base package without plugins (excludes para-dao-sql
and para-search-lucene
), run:
$ cd para-jar && mvn -Pbase package
To run a local instance of Para for development, use:
$ mvn -Dconfig.file=./application.conf spring-boot:run
Standalone server
You can run Para as a standalone server by downloading the executable JAR and then:
$ java -jar para-X.Y.Z.jar
The you can browse your objects through the Para Web Console console.paraio.org. Simply change the API endpoint to be your local server and connect your access keys. The admin interface is client-side only and your secret key is never sent over the the network. Instead, a JWT access token is generated locally and sent to the server on each request.
Alternatively, you can build a WAR file and deploy it to your favorite servlet container:
$ cd para-war && mvn package
Download JAR
Maven dependency
You can also integrate Para with your project by adding it as a dependency. Para is hosted on Maven Central.
Here's the Maven snippet to include in your pom.xml
:
<dependency>
<groupId>com.erudika</groupId>
<artifactId>para-server</artifactId>
<version>{see_green_version_badge_above}</version>
</dependency>
For building lightweight client-only applications connecting to Para, include only the client module:
<dependency>
<groupId>com.erudika</groupId>
<artifactId>para-client</artifactId>
<version>{see_green_version_badge_above}</version>
</dependency>
Command-line tool
- Para CLI: para-cli
$ npm install -g para-cli
API clients
Use these client libraries to quickly integrate Para into your project:
- Java: para-client
- JavaScript / Node.js: para-client-js
- PHP: para-client-php
- Python: para-client-python
- C# / .NET: para-client-csharp
- Android: para-client-android
- Swift / iOS: para-client-ios
Database integrations
Use these DAO
implementations to connect to different databases:
- DynamoDB:
AWSDynamoDAO
(included inpara-server
) - MongoDB: para-dao-mongodb
- Cassandra: para-dao-cassandra
- SQL (H2/MySQL/SQL Server/PostgreSQL, etc.): para-dao-sql
H2DAO
is the defaultDAO
and it's part of the SQL plugin (packaged with the JAR file)
Search engine integrations
The Search
interface is implemented by:
- Lucene: para-search-lucene default (packaged with the JAR file)
- Elasticsearch: para-search-elasticsearch
- Elasticsearch v5.x: para-search-elasticsearch-v5 Compatible with ES 5.x only and missing some of the latest features like AWS Elasticsearch support.
Cache integrations
The Cache
interface is implemented by:
- Caffeine: default objects are cached locally (included in
para-server
) - Hazelcast: para-cache-hazelcast (distributed)
Queue implementations
The Queue
interface is implemented by:
- AWS SQS: in the
AWSQueue
class LocalQueue
for single-host deployments and local development
Projects using Para
- Scoold - an open source StackOverflow clone
- ParaIO.com - managed Para hosting
- Erudika.com - the search bar on our blog uses Para
- Angular2 demo app - a sample Angular2 project
- React demo app - a sample React project
Wishlist / Roadmap
- Para
2.0
- migration to Quarkus, Java 13+ only, native image - GraphQL support
Getting help
- Have a question? - ask it on Gitter
- Found a bug? - submit a bug report here
- Ask a question on Stack Overflow using the
para
tag - For questions related to Scoold, use the
para
tag on Stack Overflow
Contributing
- Fork this repository and clone the fork to your machine
- Create a branch (
git checkout -b my-new-feature
) - Implement a new feature or fix a bug and add some tests
- Commit your changes (
git commit -am 'Added a new feature'
) - Push the branch to your fork on GitHub (
git push origin my-new-feature
) - Create new Pull Request from your fork
Please try to respect the code style of this project. To check your code, run it through the style checker:
mvn validate
For more information see CONTRIBUTING.md
License
[Apache 2.0](LICENSE)
*Note that all licence references and agreements mentioned in the Para README section above
are relevant to that project's source code only.