fern4lvarez / piladb Goto Github PK
View Code? Open in Web Editor NEWLightweight RESTful database engine based on stack data structures
Home Page: https://www.piladb.org
License: MIT License
Lightweight RESTful database engine based on stack data structures
Home Page: https://www.piladb.org
License: MIT License
This is a proposal to extend the capabilities of a Stack by adding new operations, that will allow to fit piladb into a larger set of use cases. The following criteria are not definitive, and open to be changed.
The main idea is that all new operations have also O(1) complexity.
EMPTY
Returns true
/false
ifsize
is 0 or not, respectively.
FULL
Returns true
if size
equals MAX_SIZE_STACK
config value, false
otherwise.
BLOCK
Blocks a Stack. When a Stack is blocked, it's not possible to modify its contents.
ROTATE
Moves the bottommost element up to the top, rotating each element one position down.
top -> |3| -> |5|
|4| -> |3|
|6| -> |4|
bottom -> |5| -> |6|
BASE
Bases the stack on top of an element, which will result as the new bottommost one.
+ +
| |
+ + +---+
| | | Y |
+---+ +-------> +---+
| Y | | X |
+---+ +---+ +---+
| X | | A | | A |
+---+ +---+ +---+
stack element stack
CONCAT
Concatenates two stacks into one.
+ +
| |
+---+
| Z |
+---+
| Y |
+ + + + +---+ + +
| | | | | X | | |
+---+ +---+ +---+ +---+
| Z | | C | | C | | C |
+---+ +---+ +-------> +---+ +---+
| Y | | B | | B | | B |
+---+ +---+ +---+ +---+
| X | | A | | A | | A |
+---+ +---+ +---+ +---+
S1 S2 S1 S2
These operations would join the already existing ones: PUSH
, POP
, PEEK
, SIZE
, and FLUSH
.
TBC
I've been using codecov for a month (https://codecov.io/gh/fern4lvarez/piladb). It could be a nice touch for thrust.
piladb
needs proper documentation.
The chosen approach is to use GitBook, as it provides Git/Github compatibility, Markdown, well structured sections, nice user interface and possibility to export to PDF, Mobi or ePub.
The project will be called docs.piladb.org.
GitBook site: https://www.gitbook.com/book/fern4lvarez/docs.piladb.org
Github repository: https://github.com/oscillatingworks/docs.piladb.org
Link all technical PRs addressing the release of 0.1 version to this issue.
Version control will be the way piladb persists its contents: instead of writing data into disk, it will decode all atomic operations into a binary log, that will contain the history of the piladb server. This will make possible to recover the state of a piladb instance from a file in order to implement #14, and also to share the state with other instances in a distributed fashion, so we can achieve #13.
TBC
Configuration for piladb:
pila.Database
into pilad.Conn
that will contain a stack per config value./_config
endpoint and hanlders will be implemented, so configuration can be accessed and modifed dinamically via HTTP requests.pilad
will provide cli arguments to initialize the config with custom values.TBC
a.k.a. pilaauth
TBC
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.