A C++ template library for embedded applications
Embedded Template Library
Github
MIT licensed
Designed and
maintained by
John Wellbelove
or
Arduino ZIP
Documentation
Overview
Releases
Setup
Arduino
Compilers
No STL
Unit Testing
Get Involved
Generators, macros etc.
ETL logos, icons and graphics.
Misc
Category
Generators
Macros
ETL logos, icons and graphics
The library allows a variety of methods to catch
errors, allowing the performance and space
overheads to be chosen according to the situation
and requirements.
Error Handling
Category
Error handler
A set of templates that present the framework code
for functionality such as state machines, message
routers etc.
Frameworks
Messages
message
message_packet
message_router
message_bus
shared_message
reference_counted_messages
reference_counted_message_pool
Timers
timer
callback_timer
message_timer
Scheduler
scheduler
task
State Machines
fsm
state_chart
Callbacks
function
delegate
callback_service
delegate_servive
Utilities
A
Algorithms
B
binary
bit_stream
C
compare
constant
cyclic_value
D
debounce
debug_count
delegate
E
endian
enum_type
exception
F
fixed_iterator
function
functional
I
instance_count
integral_limits
io_port
iterator
L
largest
limits
M
memory
memory_model
mutex
multi_range
N
nullptr
null_type
numeric
P
parameter_type
parameter_pack
R
reference_counted_object
S
smallest
static_assert
successor
T
type_traits
type_select
type_lookup
type_def
U
user_type
utility
A catch-all for all other template classes. Some of
these are reverse engineered from the C++ 11
standard; others being generally useful utilities.
A set of mathematical templates; both compile time
constants and algorithms such as hash codes and
CRCs.
Mathematical
Maths
absolute
cumulative_moving_average
hash
Random numbers
Scaled Rounding
negative
Constants
Combinations / Permutaions
Constants
ratio
radix
Graphical
bresenham_line
A set of templates that supply the basic framework
for implementing popular design patterns.
Template techniques are used to ensure that
implementation mistakes are usually caught at
compile time
Patterns
Patterns
observer
visitor
successor
A set of fixed capacity string classes, for
char
,
wchar_t
,
char16_t
and
char32_t
character types.
Strings
Strings
string
string_view
Utilities
to_string
format_spec
string_stream
String utilities
A set of containers that have been specially tailored
for embedded systems. They have a maximum
capacity fixed at compile time and make no calls to
malloc/free
or
new/delete
.
Containers
Arrays
array
array_view
array_wrapper
multi_array
span
Vectors
vector
indirect_vector
Deques
deque
Lists
list
forward_list
intrusive_list
intrusive_forward_list
Maps
map / multimap
flat_map / _multimap
unordered_map / _multimap
reference_flat_map / _multimap
Sets
set / multiset
flat_set / _multiset
unordered_set / _multiset
reference_flat_set / _multiset
Queues
queue
queue_lockable
queue_mpmc_mutex
queue_spsc_atomic
queue_spsc_isr
queue_spsc_locked
intrusive_queue
priority_queue
circular_buffer
Stacks
stack
intrusive_stack
Pools
pool / generic_pool
variant_pool
imemory_block_allocator
fixed_sized_memory_block_allocator
Misc
bitset
bloom_filter
optional
packet
variant
buffer_descriptors
Home
Overview
Releases
Documentation
Tutorials
function
Containers
observer
visitor
Messages
Generators
callback_service
delegate_service
Links
RTOS
crect
FreeRTOS
NuttX
Libraries
JSON
Embedded Artistry
Website
Libraries
Fluent C++
CPP Reference
Stack Overflow
Stack Exchange
Open Source
Git
Fork
GitKraken
SmartGit
Sourcetree
Blog
About
Contact
Shop