-
Notifications
You must be signed in to change notification settings - Fork 0
Guide Installation
Turkce Dokumantasyon | English Documentation
Category: Getting Started & Fundamental Guides
Subsystem: Installation, Upgrades & Environment Setup
Entry Type: Installation & System Guide
AmberDB is distributed as a standard CPAN module. It does not require any external database server; its sole system requirement is the standard Perl core module DB_File (Berkeley DB v1.x).
- Linux: Ubuntu, Debian, CentOS, RHEL, Alpine, Fedora, etc.
- Windows: Strawberry Perl, MSYS2 / MSYS64, ActivePerl.
- macOS: Apple Silicon (M1/M2/M3) and Intel-based Darwin systems.
- Perl 5.16 or higher (Recommended: Perl 5.32+).
AmberDB can be installed with a single command along with all documentation and command-line utilities:
# Using cpanm (App::cpanminus)
cpanm AmberDB
# Or via standard CPAN shell:
cpan AmberDBTo install directly from GitHub or a downloaded release tarball:
# 1. Clone repository
git clone https://github.com/marufcetin/amberdb.git
cd amberdb
# 2. Generate Makefile and compile
perl Makefile.PL
make
# 3. Execute all unit and integration test suites
make test
# 4. Install into system / Perl library (Requires root or administrator privileges)
make installTip
Windows Installation:
On Windows using Strawberry Perl or MSYS2, use dmake or gmake, or simply run cpanm . from the project root directory.
To upgrade your existing AmberDB installation to the latest stable release on CPAN:
# Using cpanm:
cpanm --upgrade AmberDB
# Using standard CPAN client:
cpan -u AmberDBWhen building from source, pull the latest changes via git pull, rerun make test, and execute make install. AmberDB maintains full backward compatibility across schemas (.table), master data (.db), and indexes (.inx); no database migrations are necessary after upgrading.
For high-throughput workloads requiring sub-microsecond (dbstore/cache/.
RAM-Disk Mount Architecture
Linux: /dev/shm or tmpfs mount ──> dbstore/cache/
Windows: ImDisk Virtual Drive (R:) ──> dbstore/cache/ (Junction / Symlink)
Creating a RAM-Disk allocates physical system memory directly from the OS kernel and attaches it as a virtual filesystem (tmpfs / ImDisk). Under Linux, macOS, and Windows security models, mounting virtual filesystems and creating block devices strictly require root (Linux/macOS) or Administrator (Windows) privileges.
AmberDB provides a cross-platform RAM-disk manager script: bin/setup_ramdisk.pl.
perl bin/setup_ramdisk.pl --status# Linux / macOS (Run with sudo):
sudo perl bin/setup_ramdisk.pl --start --size 512M
# Windows (Elevated PowerShell / CMD as Administrator):
perl bin/setup_ramdisk.pl --start --size 512M --drive R:# Linux / macOS:
sudo perl bin/setup_ramdisk.pl --stop
# Windows:
perl bin/setup_ramdisk.pl --stopAmberDB includes ready-to-run scripts under bin/:
-
Linux / Unix Bash:
sudo ./bin/setup_ramdisk.sh start 512M -
Windows PowerShell:
powershell -ExecutionPolicy Bypass -File .\bin\setup_ramdisk.ps1 -Action start -Size 512MB -
Windows Batch (CMD):
.\bin\setup_ramdisk.bat start
Important
ImDisk Requirement on Windows:
To use RAM-disks on Windows, ImDisk Toolkit must be installed (choco install imdisk-toolkit or via its official installer).
You can verify RAM-disk availability programmatically inside your Perl application using $adb->cache_setup():
use AmberDB;
my $adb = AmberDB->new(path => { dbase_dir => "./dbstore" });
# Fetch RAM-disk diagnostic report
my $diag = $adb->cache_setup();
if ($diag->{is_mounted}) {
print "RAM-Disk Active: $diag->{mount_type}, Size: $diag->{cache_size}\n";
} else {
print "RAM-Disk inactive, running on persistent disk storage.\n";
}AmberDB — High-Performance Schema-Driven NoSQL Database Engine for Perl.
Copyright 2005-2026 Maruf Cetin. Released under the Artistic License 2.0.
CPAN · GitHub Repository · Issue Tracker
- Berkeley DB (DB_File) Engine
- AmberDB Table Schema
- Global Flags
- Table Schema Flags
- Directory Structure
- File Structure (Extensions)
- Repeat Blocks
- Auto-Increment ID
- ASCII ID
- Relational Records
- Record Anatomy
- JOIN-Free Architecture
- Packed Binary Index
- Strict 2PL Locking
- Undo Journal & Rollback
- Tiered Junk Indexing
- Disjunctive Faceting
- Phonetic Accent Search
- 2-Pillar Disaster Recovery
- RAM-Disk Acceleration
- In-Memory Schema Mutation
- Simple Mode
- new
- config
- set_datadir
- insert_id
- insert_list
- modify_id
- modify_list
- delete_id
- delete_list
- read_id
- read_all
- read_list
- exist_id
- exist_list
- exist_table
- table_count
- table_keys
- table_lastid
- table_attr
- table_create
- field_fetch
- field_filter
- search_table
- facet_menu
- field_fltkeys
- field_allfltkeys
- facet_rules
- slug_read
- slug_fetch
- transact_start
- transact_end
- transact_commit
- transact_rollback
- transact_recover
- flock_open
- flock_close
- cache_setup
- cache_read
- cache_write
- cache_delete
- cache_preload
- cache_ensure
- buffer_write
- buffer_read
- buffer_delete
- recs_scan
- recs_get
- recs_put
- recs_del
- locale_uc
- locale_lc
- locale_sort
- locale_to_ascii
- locale_num2text
- locale_format_currency
- locale_format_date
- array_sort
- array_punch
- array_filter
- array_sublist
- deep_copy
- log_owner
- use_counter
- use_junk
- keep_deleted
- auto_id
- buffer_write
- simple
- no_write
- no_backup
- jnktype
- keys_only
- id_type
- language
- .db · .table · .dbase
- .inx · .fld · .src
- .fac · .srt · .slg
- .unq · .del · .aut
- .cnt · .txn · .amberdb
- .csv · .cache · .tmp